Database · 3 min read · Jan 29, 2026

Sphinx Come Motore di Archiviazione MySQL (SphinxSE)

Sphinx Come Motore di Archiviazione MySQL (SphinxSE)

Di Nedim Hadzimahmutovic < [email protected] >
Versione: v1.0
Ultima Modifica: 9 Maggio 2010

SphinX è un ottimo motore di ricerca full-text per MySQL. L’installazione del demone Sphinx è stata semplice poiché puoi compilarlo dal sorgente o utilizzare un pacchetto .DEB/.RPM, ma SphinxSE è stata un po’ complicata poiché doveva essere installata come plugin su un server MySQL in esecuzione.

Quindi, se utilizzi Debian o CentOS e installi il tuo MySQL da un pacchetto .deb o .rpm, ecco come fare.

  1. Questo richiede MySQL 5.1 poiché supporta i plugin e non dovrai ricompilare MySQL per avere supporto per SphinxSE.

  2. Controlla la versione del tuo pacchetto MySQL:

Per Debian:

# dpkg --list | grep mysql-server ii mysql-server-5.1 5.1.45-0.dotdeb.0 MySQL database server binaries

Per CentOS:

# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi
  1. Scarica il codice sorgente di MySQL, la stessa versione esatta installata sul tuo server, da http://www.mysql.com/downloads/mysql/. Le versioni devono corrispondere! Scarica il codice sorgente di 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'

Estrai entrambi gli archivi:

# tar -xzvf mysql-5.1.45.tar.gz  
# tar -xzvf sphinx-0.9.9.tar.gz
  1. Copia la directory mysqlse da sphinx a mysql:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinx

Compila:

cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; make
  1. Fai una pausa, ci vorrà un po’.

  2. Copia i file Sphinx.SO nella tua directory plugin di MySQL:

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

La directory del plugin potrebbe differire sul tuo sistema.

  1. Accedi alla console mysql come utente root. Installa il plugin Sphinx.
# mysql -u root -p -h localhost mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';

Controlla se il motore Sphinx è abilitato:

mysql> show engines;
mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | Supporta transazioni, blocco a livello di riga e chiavi esterne | YES          | YES  | YES        |
| MRG_MYISAM | YES     | Collezione di tabelle MyISAM identiche                        | NO           | NO   | NO         |
| BLACKHOLE  | YES     | Motore di archiviazione /dev/null (tutto ciò che scrivi scompare) | NO           | NO   | NO         |
| CSV        | YES     | Motore di archiviazione CSV                                   | NO           | NO   | NO         |
| SPHINX     | YES     | Motore di archiviazione Sphinx 0.9.9                          | NO           | NO   | NO         |
| FEDERATED  | YES     | Motore di archiviazione MySQL federato                       | NO           | NO   | NO         |
| ARCHIVE    | YES     | Motore di archiviazione Archive                               | NO           | NO   | NO         |
| MEMORY     | YES     | Basato su hash, memorizzato in memoria, utile per tabelle temporanee | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Motore predefinito a partire da MySQL 3.23 con ottime prestazioni | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+

Ecco fatto!

Un altro modo per controllare se il plugin è stato installato è con il seguente 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 hai bisogno di disinstallare il plugin sphinx per qualche motivo in seguito, ecco come fare:

mysql> UNINSTALL PLUGIN sphinx;

Note:

  • Tieni presente che c’è un bug in alcune versioni di MySQL: quando si installano i plugin, l’identificatore del plugin non è gestito in modo coerente rispetto al maiuscolo e minuscolo.

  • Se ricevi il seguente errore:

mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; ERROR 1062 (23000): Voce duplicata 'sphinx' per chiave 'PRIMARY'

dovrai eliminare manualmente l’entry del plugin sphinx dalla tabella mysql.plugin. Potresti ricevere questo errore dopo un aggiornamento. Il gestore delle password sphinx, la password principale, il gestore delle password o i gestori delle password e il negozio delle password, così come la password principale dell’utente e la gestione delle password come password casuali saranno trattati in una delle mie prossime guide.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.