Datenbank · 3 min read · Jan 29, 2026
Sphinx Als MySQL Speicher-Engine (SphinxSE)
Sphinx Als MySQL Speicher-Engine (SphinxSE)
Von Nedim Hadzimahmutovic < [email protected] >
Version: v1.0
Letzte Änderung: 9. Mai 2010
SphinX ist eine großartige Volltext-Suchmaschine für MySQL. Die Installation des Sphinx-Daemons war unkompliziert, da Sie ihn aus dem Quellcode kompilieren oder ein .DEB/.RPM-Paket verwenden können, aber SphinxSE war ein wenig knifflig, da es als Plugin auf einem laufenden MySQL-Server installiert werden musste.
Wenn Sie also Debian oder CentOS verwenden und Ihr MySQL aus einem .deb- oder .rpm-Paket installieren, so geht es:
Dies erfordert MySQL 5.1, da es Plugins unterstützt und Sie MySQL nicht neu kompilieren müssen, um Unterstützung für SphinxSE zu haben.
Überprüfen Sie die Version Ihres MySQL-Pakets:
Für Debian:
# dpkg --list | grep mysql-server ii mysql-server-5.1 5.1.45-0.dotdeb.0 MySQL-Datenbankserver-BinärdateienFür CentOS:
# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi- Laden Sie den MySQL-Quellcode in genau derselben Version wie auf Ihrem Server installiert von http://www.mysql.com/downloads/mysql/. Die Versionen müssen übereinstimmen! Laden Sie den Sphinx-Quellcode herunter.
# 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'Entpacken Sie beide Archive:
# tar -xzvf mysql-5.1.45.tar.gz
# tar -xzvf sphinx-0.9.9.tar.gz- Kopieren Sie das mysqlse-Verzeichnis von Sphinx nach MySQL:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinxBauen:
cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; makeMachen Sie eine Pause, das wird eine Weile dauern.
Kopieren Sie die Sphinx.SO-Dateien in Ihr MySQL-Plugin-Verzeichnis:
# cp storage/sphinx/.libs/ha_sphinx.* /usr/lib64/mysql/pluginDas Plugin-Verzeichnis kann auf Ihrem System abweichen.
- Melden Sie sich als Root-Benutzer an der MySQL-Konsole an. Installieren Sie das Sphinx-Plugin.
# mysql -u root -p -h localhost mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';Überprüfen Sie, ob die Sphinx-Engine aktiviert ist:
mysql> show engines;mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Unterstützt Transaktionen, zeilenbasiertes Sperren und Fremdschlüssel | YES | YES | YES |
| MRG_MYISAM | YES | Sammlung identischer MyISAM-Tabellen | NO | NO | NO |
| BLACKHOLE | YES | /dev/null Speicher-Engine (alles, was Sie dorthin schreiben, verschwindet) | NO | NO | NO |
| CSV | YES | CSV-Speicher-Engine | NO | NO | NO |
| SPHINX | YES | Sphinx-Speicher-Engine 0.9.9 | NO | NO | NO |
| FEDERATED | YES | Federated MySQL-Speicher-Engine | NO | NO | NO |
| ARCHIVE | YES | Archiv-Speicher-Engine | NO | NO | NO |
| MEMORY | YES | Hash-basiert, im Speicher gespeichert, nützlich für temporäre Tabellen | NO | NO | NO |
| MyISAM | DEFAULT | Standard-Engine seit MySQL 3.23 mit großartiger Leistung | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
Das war’s!
Eine weitere Möglichkeit, zu überprüfen, ob das Plugin installiert wurde, ist der folgende Befehl:
mysql> select * from mysql.plugin;mysql> select * from mysql.plugin;
+--------+--------------+
| name | dl |
+--------+--------------+
| sphinx | ha_sphinx.so |
+--------+--------------+
1 row in set (0.00 sec)
Wenn Sie aus irgendeinem Grund später das Sphinx-Plugin deinstallieren müssen, so geht es:
mysql> UNINSTALL PLUGIN sphinx;Hinweise:
Bitte beachten Sie, dass es einen Fehler in einigen MySQL-Versionen gibt - beim Installieren von Plugins wird der Plugin-Identifikator nicht konsistent in Bezug auf die Groß- und Kleinschreibung behandelt.
Wenn Sie den folgenden Fehler erhalten:
mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; ERROR 1062 (23000): Duplicate entry 'sphinx' for key 'PRIMARY'müssen Sie den Sphinx-Plugin-Eintrag manuell aus der mysql.plugin-Tabelle löschen. Sie können diesen Fehler nach einem Upgrade erhalten. Der Sphinx-Passwortmanager, das Master-Passwort, der Passwortmanager oder die Passwortmanager und der Passwortspeicher, auch das Master-Passwort des Benutzers und das Passwortmanagement wie zufällige Passwörter werden in einem meiner nächsten Leitfäden behandelt.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.