Если вы пользователь убунту и хотите установить поддержку движка Sphinx для базы данных MySQL, этот пост для вас.
Вероятно, у вас уже стоит база данных mysql и ставили вы ее, скорее всего, через apt-get. Обычно в руководствах рассказывается, что для того, чтобы работать со сфинксом непосредственно из мускула, необходимо перед компиляцией бд из исходников закинуть в папку с движками SphinxSE. Этот вариант не подходит, если уже имеется работающий сервер. К счастью в мускуле можно подключать движки, не пересобирая весь сервер.
Для начала нужно определиться с версией базы данных. Это можно сделать командой
dpkg --list | grep mysql-server
Далее идете на сайт mysql и скачиваете свою версию. Я же воспользовался командой apt-get source mysql-server-5.1 и скачал базу данных, однако затем при сборке наступил на грабли, что не совпадала версия automake, но об этом ниже. Теперь те же действия нужно проделать и со сфинксом. Если он у вас установлен, загружаем требуемую версию. Если ставите сфинкс впервые, то можно взять самую последнюю версию. В моем случае сфинкс уже был установлен, поэтому я просто загрузил исходники apt-get source sphinxsearch
Теперь копируем mysqlse сфинкса в папку storage mysql.
cp -R sphinxsearch-0.9.9/mysqlse mysql-5.1-5.1.54/storage/sphinx
Собираем базу с новым движком
cd mysql-5.1-5.1.54; sh BUILD/autorun.sh; ./configure --with-plugins=sphinx; make
Кстати при сборке могуть возникать различные ошибки, у меня к примеру не нашлось одной библиотеки
checking for termcap functions library… configure: error: No curses/termcap library found
Нужно просто ее скачать и установить.
sudo apt-get install libncurses5-dev
Самая большая проблема, наверно, может возникнуть с automake. На момент написания этого поста я использую mysql версии 5.1.54. Для сборки требовалась версия automake 1.9, у меня же была версия 1.7.6.
Однако установить ее недостаточно, нужно еще поставить соответствующей aclocal пакет и переключиться на него при сборке.
Если все прошло успешно, копируем sphinx.so в каталог плагинов mysql (конечная папка у вас может отличаться).
cp storage/sphinx/.libs/ha_sphinx.* /usr/lib64/mysql/plugin
Далее устанавливаем плагин
mysql -u root -p -h localhost
mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';
Теперь смотрим список установленных движков и радуемся 😉
mysql>SHOW ENGINES;
На этом все в этом году!
Поздравляю всех с Новым Годом;)
В Новом Году возобновлю выкладывание документации по Zend Framework, а также будут посты про Zend Framework 2. До встречи!
Leave a Reply