MySQL · 3 min read · Jan 29, 2026
Sphinx как движок хранения MySQL (SphinxSE)
Sphinx как движок хранения MySQL (SphinxSE)
Автор: Недим Хадзимахмутович < [email protected] >
Версия: v1.0
Последнее изменение: 9 мая 2010 года
SphinX — это отличный движок полнотекстового поиска для MySQL. Установка демона Sphinx была простой, так как вы можете скомпилировать его из исходников или использовать пакет .DEB/.RPM, но SphinxSE был немного сложнее, так как его нужно было установить как плагин на работающем сервере MySQL.
Итак, если вы используете Debian или CentOS и устанавливаете MySQL из пакета .deb или .rpm, вот как это сделать.
Это требует MySQL 5.1, так как он поддерживает плагины, и вам не нужно будет перекомпилировать MySQL для поддержки SphinxSE.
Проверьте версию вашего пакета MySQL:
Для Debian:
# dpkg --list | grep mysql-server ii mysql-server-5.1 5.1.45-0.dotdeb.0 Бинарные файлы сервера базы данных MySQLДля CentOS:
# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi- Скачайте исходный код MySQL, точно такой же версии, как установленный на вашем сервере, с http://www.mysql.com/downloads/mysql/. Версии должны совпадать! Скачайте исходный код Sphinx.
# cd /tmp/
# wget 'http://mysql.mirrors.hoobly.com/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz'
# wget 'http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz'Извлеките оба архива:
# tar -xzvf mysql-5.1.45.tar.gz
# tar -xzvf sphinx-0.9.9.tar.gz- Скопируйте каталог mysqlse из sphinx в mysql:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinxСоберите:
cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; makeСделайте перерыв, это займет некоторое время.
Скопируйте файлы Sphinx.SO в каталог плагинов MySQL:
# cp storage/sphinx/.libs/ha_sphinx.* /usr/lib64/mysql/pluginКаталог плагинов может отличаться на вашей системе.
- Войдите в консоль mysql как пользователь root. Установите плагин Sphinx.
# mysql -u root -p -h localhost mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';Проверьте, включен ли движок Sphinx:
mysql> show engines;mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Поддерживает транзакции, блокировку на уровне строк и внешние ключи | YES | YES | YES |
| MRG_MYISAM | YES | Коллекция идентичных таблиц MyISAM | NO | NO | NO |
| BLACKHOLE | YES | Движок хранения /dev/null (все, что вы пишете, исчезает) | NO | NO | NO |
| CSV | YES | Движок хранения CSV | NO | NO | NO |
| SPHINX | YES | Движок хранения Sphinx 0.9.9 | NO | NO | NO |
| FEDERATED | YES | Федеративный движок хранения MySQL | NO | NO | NO |
| ARCHIVE | YES | Архивный движок хранения | NO | NO | NO |
| MEMORY | YES | На основе хешей, хранится в памяти, полезно для временных таблиц | NO | NO | NO |
| MyISAM | DEFAULT | Дефолтный движок с MySQL 3.23 с отличной производительностью | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
Вот и все!
Другой способ проверить, установлен ли плагин, — это следующая команда:
mysql> select * from mysql.plugin;mysql> select * from mysql.plugin;
+--------+--------------+
| name | dl |
+--------+--------------+
| sphinx | ha_sphinx.so |
+--------+--------------+
1 row in set (0.00 sec)
Если вам нужно удалить плагин sphinx по какой-либо причине позже, вот как это сделать:
mysql> UNINSTALL PLUGIN sphinx;Примечания:
Пожалуйста, имейте в виду, что в некоторых версиях MySQL есть ошибка — при установке плагинов идентификатор плагина не обрабатывается последовательно в отношении регистра.
Если вы получите следующую ошибку:
mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; ERROR 1062 (23000): Дублирующая запись 'sphinx' для ключа 'PRIMARY'вам придется вручную удалить запись плагина sphinx из таблицы mysql.plugin. Вы можете получить эту ошибку после обновления. Менеджер паролей sphinx, мастер-пароль, менеджер паролей или менеджеры паролей и хранилище паролей, а также мастер-пароль пользователя и управление паролями, такие как случайные пароли, будут рассмотрены в одном из моих следующих руководств.
Get new posts in your inbox
No spam. Unsubscribe anytime.