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.

  1. Isso requer MySQL 5.1, pois ele suporta plugins e você não precisará recompilar o MySQL para ter suporte ao SphinxSE.

  2. 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 binaries

Para CentOS:

# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi
  1. 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
  1. Copie o diretório mysqlse do sphinx para mysql:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinx

Compile:

cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; make
  1. Faça uma pausa, isso levará um tempo.

  2. Copie os arquivos Sphinx.SO para o diretório de plugins do MySQL:

# cp storage/sphinx/.libs/ha_sphinx.* /usr/lib64/mysql/plugin

O diretório de plugins pode ser diferente em seu sistema.

  1. 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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.