Compiling MySQL with Sphinx

The following commands were used to compile MySQL 5.1.43 with Sphinx 0.9.9. This will install it in /opt.  You may want to change the prefix accordingly.

Download the proper packages and following the following commands.

Note: For some reason, MySQL > 5.1.43 gives a “LT_INIT: command not found” error when compiling. Although it seems like it has something to do with autoconf < 2.2, this was ‘resolved’ by using an older release (5.1.43 instead of 5.1.44) at the time of this writing.

When configuring MySQL, if configure complains about something about no Sphinx, delete the entire MySQL source directory and try again from scratch.

Note: You should already have the following packages installed: libtermcap-devel libgcc-c++ libtool gcc make autoconf g++ gcc-c++

cd /root
tar -xzf mysql-5.1.43.tar.gz
tar -xzf sphinx-0.9.9.tar.gz

You may want to ignore this step if you do not want to compile sphinx with mysql.

cd mysql-5.1.43
cp -R ../sphinx-0.9.9/mysqlse/ storage/sphinx
sh BUILD/autorun.sh

Configure MySQL and compile as usual

./configure --prefix=/opt/mysql --with-unix-socket-path=/opt/mysql/mysql.sock --without-man --enable-shared  --without-debug --enable-assembler --with-ssl --with-plugins=sphinx CFLAGS=-O3 'CXXFLAGS=-O3 -fno-exceptions -felide-constructors -fno-rtti' CXX=gcc
make
make install

Setting up MySQL configuration and the initial database.

/bin/cp /root/my.cnf /etc/my.cnf
/bin/cp support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
ln -s /etc/init.d/mysql /etc/rc3.d/S40mysql
/bin/cp support-files/my-medium.cnf /etc/my.cnf
/usr/sbin/useradd mysql
cd /opt/mysql
chown -R mysql .
chgrp -R mysql .
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var
bin/mysqld_safe --user=mysql &
chown mysql /opt/mysql

Set the lib paths of MySQL so the libmysqlclient.so or whatever else libraries can be found. This is required when attempting to compile anything that requires MySQL (including sphinx).

echo "/opt/mysql/lib/mysql" > /etc/ld.so.conf.d/mysql.conf
ldconfig

Now that MySQL is done, we will compile Sphinx.

cd /root
cd sphinx-0.9.9
./configure --prefix=/opt/sphinx --with-mysql
make
make install

Post install steps:

/bin/cp /root/sphinx.conf /opt/sphinx/etc/sphinx.conf
cp contrib/scripts/searchd /etc/init.d/
chmod 777 /etc/init.d/searchd
ln -s /etc/init.d/searchd /etc/init.d/S55searchd

Leave a Reply

Your email address will not be published.