MySQL Sphinx · 3 min read · Jan 29, 2026
Sphinx Como Motor de Armazenamento MySQL (SphinxSE)
Sphinx Como Motor de Armazenamento MySQL (SphinxSE)
Por Nedim Hadzimahmutovic < [email protected] >
Versão: v1.0
Última Alteração: 9 de maio de 2010
SphinX é um ótimo motor de busca de texto completo para MySQL. A instalação do daemon Sphinx foi simples, pois você pode compilá-lo a partir do código-fonte ou usar um pacote .DEB/.RPM, mas o SphinxSE foi um pouco complicado, pois precisava ser instalado como um plugin em um servidor MySQL em execução.
Então, se você usa Debian ou CentOS e instala seu MySQL a partir de um pacote .deb ou .rpm, é assim que você faz.
Isso requer MySQL 5.1, pois ele suporta plugins e você não precisará recompilar o MySQL para ter suporte ao SphinxSE.
Verifique a versão do seu pacote MySQL:
Para Debian:
# dpkg --list | grep mysql-server ii mysql-server-5.1 5.1.45-0.dotdeb.0 MySQL database server binariesPara CentOS:
# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi- Baixe o código-fonte do MySQL, a mesma versão exata que está instalada em seu servidor, de http://www.mysql.com/downloads/mysql/. As versões devem coincidir! Baixe o código-fonte do 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'Extraia ambos os arquivos:
# tar -xzvf mysql-5.1.45.tar.gz
# tar -xzvf sphinx-0.9.9.tar.gz- Copie o diretório mysqlse do sphinx para mysql:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinxCompile:
cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; makeFaça uma pausa, isso levará um tempo.
Copie os arquivos Sphinx.SO para o diretório de plugins do MySQL:
# cp storage/sphinx/.libs/ha_sphinx.* /usr/lib64/mysql/pluginO diretório de plugins pode ser diferente em seu sistema.
- Faça login no console mysql como usuário root. Instale o plugin Sphinx.
# mysql -u root -p -h localhost mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';Verifique se o motor Sphinx está habilitado:
mysql> show engines;mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Suporta transações, bloqueio em nível de linha e chaves estrangeiras | YES | YES | YES |
| MRG_MYISAM | YES | Coleção de tabelas MyISAM idênticas | NO | NO | NO |
| BLACKHOLE | YES | motor de armazenamento /dev/null (tudo que você escreve nele desaparece) | NO | NO | NO |
| CSV | YES | motor de armazenamento CSV | NO | NO | NO |
| SPHINX | YES | motor de armazenamento Sphinx 0.9.9 | NO | NO | NO |
| FEDERATED | YES | motor de armazenamento MySQL federado | NO | NO | NO |
| ARCHIVE | YES | motor de armazenamento Archive | NO | NO | NO |
| MEMORY | YES | Baseado em hash, armazenado na memória, útil para tabelas temporárias | NO | NO | NO |
| MyISAM | DEFAULT | motor padrão a partir do MySQL 3.23 com ótimo desempenho | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
É isso!
Outra maneira de verificar se o plugin foi instalado é com o seguinte comando:
mysql> select * from mysql.plugin;mysql> select * from mysql.plugin;
+--------+--------------+
| name | dl |
+--------+--------------+
| sphinx | ha_sphinx.so |
+--------+--------------+
1 row in set (0.00 sec)
Se você precisar desinstalar o plugin sphinx por algum motivo mais tarde, é assim que você faz:
mysql> UNINSTALL PLUGIN sphinx;Notas:
Por favor, tenha em mente que há um bug em algumas versões do MySQL - ao instalar plugins, o identificador do plugin não é tratado de forma consistente em relação ao caso das letras.
Se você receber o seguinte erro:
mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; ERROR 1062 (23000): Entrada duplicada 'sphinx' para a chave 'PRIMARY'você terá que excluir manualmente a entrada do plugin sphinx da tabela mysql.plugin. Você pode receber esse erro após uma atualização. O gerenciador de senhas sphinx, a senha mestre, o gerenciador de senhas ou gerenciadores de senhas e o armazenamento de senhas, também a senha mestre do usuário e o gerenciamento de senhas como senhas aleatórias serão abordados em um dos meus próximos guias.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.