Если вы пользователь убунту и хотите установить поддержку движка 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. До встречи!

Related Post

Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *