This is probably one of the two things that drove me crazy over the last two weeks. The first was trying to get cPanel to stop being such a MySQL nazi, the second was getting Sphinx installed into MySQL 5.1 for one of the clients. I’ve installed it with 5.0 on Ubuntu before, but 5.1 with cPanel can be pretty torturous. After talking to the developer who was able to fill in the blanks, I’ve decided to write my own documentation on how to install Sphinx as a dynamic MySQL plugin for an existing MySQL 5.1 installation.
Before we start...
You need MySQL 5.1 installed to use the plugin feature. If you’re running on cPanel or other version-dependent software it’s a really really bad idea to install MySQL from source, so you’ll probably want to read this as a guide to upgrading via RPM. Also, this walkthrough is specific to MySQL 5.1.20 (beta), since that’s the latest release out at the time of this writing.
You also need to have root access, and a decent knowledge of Linux and MySQL.
Download the Sphinx binaries and MySQL 5.1.20 patch:
tar -xvzf sphinx-0.9.7.tar.gz
patch -p1 < sphinxse097-mysql5120.patch
I should point out that Andrew Aksyonoff (the developer) provided that patch to make Sphinx compatible with MySQL 5.1.20, but you’d probably have to check back on his site for version ugprades and such, esp. for newer versions of MySQL.
Now download the MySQL 5.1 sources — these are only going to be used to compile the Sphinx module:
tar -xvzf mysql-5.1.20-beta.tar.gz
cp -Rf /usr/src/sphinx-0.9.7/mysqlse/ storage/sphinx
Compile the Sphinx module against the MySQL 5.1 sources, but don’t install:
If you look in storage/sphinx/.libs you’ll see the loadable .so files that can plug in to MySQL easily. I suggest you copy them into a more permanent location:
cp storage/sphinx/.libs/ha_sphinx.* /var/lib/mysql/plugins
Now add this line to /etc/my.cnf and restart mysql:
To install, log into the MySQL root and issue the ‘INSTALL PLUGIN’ command:
mysql -u root
mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';
To verify its installation, just run the ‘SHOW ENGINES’ command:
mysql> show engines;
| CSV | YES | CSV storage engine
| SPHINX | YES | Sphinx storage engine 0.9.7
If you need further info, check out the doc-u-men-ta-tion.