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:

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

  2. Ü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ärdateien

Für CentOS:

# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi
  1. 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
  1. Kopieren Sie das mysqlse-Verzeichnis von Sphinx nach MySQL:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinx

Bauen:

cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; make
  1. Machen Sie eine Pause, das wird eine Weile dauern.

  2. Kopieren Sie die Sphinx.SO-Dateien in Ihr MySQL-Plugin-Verzeichnis:

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

Das Plugin-Verzeichnis kann auf Ihrem System abweichen.

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

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.