MySQL Sphinx · 3 min read · Jan 29, 2026
Sphinx Comme Moteur de Stockage MySQL (SphinxSE)
Sphinx Comme Moteur de Stockage MySQL (SphinxSE)
Par Nedim Hadzimahmutovic < [email protected] >
Version : v1.0
Dernière modification : 9 mai 2010
SphinX est un excellent moteur de recherche en texte intégral pour MySQL. L’installation du démon Sphinx était simple car vous pouvez le compiler à partir des sources ou utiliser un paquet .DEB/.RPM, mais SphinxSE était un peu délicat car il devait être installé en tant que plugin sur un serveur MySQL en cours d’exécution.
Donc, si vous utilisez Debian ou CentOS et installez votre MySQL à partir d’un paquet .deb ou .rpm, voici comment procéder.
Cela nécessite MySQL 5.1 car il prend en charge les plugins et vous n’aurez pas à recompiler MySQL pour avoir le support de SphinxSE.
Vérifiez la version de votre paquet MySQL :
Pour Debian :
# dpkg --list | grep mysql-server ii mysql-server-5.1 5.1.45-0.dotdeb.0 Serveur de base de données MySQLPour CentOS :
# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi- Téléchargez le code source de MySQL, la même version exacte que celle installée sur votre serveur, depuis http://www.mysql.com/downloads/mysql/. Les versions doivent correspondre ! Téléchargez le code source de 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'Extrayez les deux archives :
# tar -xzvf mysql-5.1.45.tar.gz
# tar -xzvf sphinx-0.9.9.tar.gz- Copiez le répertoire mysqlse de sphinx vers mysql :
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinxConstruisez :
cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; makePrenez une pause, cela va prendre un certain temps.
Copiez les fichiers Sphinx.SO dans votre répertoire de plugins MySQL :
# cp storage/sphinx/.libs/ha_sphinx.* /usr/lib64/mysql/pluginLe répertoire des plugins peut différer sur votre système.
- Connectez-vous à la console mysql en tant qu’utilisateur root. Installez le plugin Sphinx.
# mysql -u root -p -h localhost mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';Vérifiez si le moteur Sphinx est activé :
mysql> show engines;mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Prend en charge les transactions, le verrouillage au niveau des lignes et les clés étrangères | YES | YES | YES |
| MRG_MYISAM | YES | Collection de tables MyISAM identiques | NO | NO | NO |
| BLACKHOLE | YES | moteur de stockage /dev/null (tout ce que vous y écrivez disparaît) | NO | NO | NO |
| CSV | YES | moteur de stockage CSV | NO | NO | NO |
| SPHINX | YES | moteur de stockage Sphinx 0.9.9 | NO | NO | NO |
| FEDERATED | YES | moteur de stockage MySQL fédéré | NO | NO | NO |
| ARCHIVE | YES | moteur de stockage Archive | NO | NO | NO |
| MEMORY | YES | Basé sur le hachage, stocké en mémoire, utile pour les tables temporaires | NO | NO | NO |
| MyISAM | DEFAULT | Moteur par défaut depuis MySQL 3.23 avec d'excellentes performances | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
C’est tout !
Une autre façon de vérifier si le plugin a été installé est avec la commande suivante :
mysql> select * from mysql.plugin;mysql> select * from mysql.plugin;
+--------+--------------+
| name | dl |
+--------+--------------+
| sphinx | ha_sphinx.so |
+--------+--------------+
1 row in set (0.00 sec)
Si vous devez désinstaller le plugin sphinx pour une raison quelconque plus tard, voici comment procéder :
mysql> UNINSTALL PLUGIN sphinx;Remarques :
Veuillez garder à l’esprit qu’il y a un bug dans certaines versions de MySQL - lors de l’installation de plugins, l’identifiant du plugin n’est pas géré de manière cohérente en ce qui concerne la casse des lettres.
Si vous obtenez l’erreur suivante :
mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; ERROR 1062 (23000): Entrée dupliquée 'sphinx' pour la clé 'PRIMARY'vous devrez supprimer manuellement l’entrée du plugin sphinx de la table mysql.plugin. Vous pouvez obtenir cette erreur après une mise à niveau. Le gestionnaire de mots de passe sphinx, le mot de passe principal, le gestionnaire de mots de passe ou les gestionnaires de mots de passe et le magasin de mots de passe, ainsi que le mot de passe principal de l’utilisateur et la gestion des mots de passe comme les mots de passe aléatoires seront abordés dans l’un de mes prochains guides.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.