MySQL · 1 min read · Jan 29, 2026

SphinxをMySQLストレージエンジンとして使用する (SphinxSE)

SphinxをMySQLストレージエンジンとして使用する (SphinxSE)

By Nedim Hadzimahmutovic < [email protected] >
Version: v1.0
Last Change: May 9, 2010

SphinXはMySQL用の優れたフルテキスト検索エンジンです。Sphinxデーモンのインストールは簡単で、ソースからコンパイルするか、.DEB/.RPMパッケージを使用できますが、SphinxSEは実行中のMySQLサーバーにプラグインとしてインストールする必要があるため、少し厄介でした。

したがって、DebianまたはCentosを使用し、.debまたは.rpmパッケージからMySQLをインストールする場合は、次の手順に従ってください。

  1. これはMySQL 5.1を必要とします。これはプラグインをサポートしており、SphinxSEのサポートのためにMySQLを再コンパイルする必要はありません。

  2. MySQLパッケージのバージョンを確認します:

For Debian:

# dpkg --list | grep mysql-server ii mysql-server-5.1 5.1.45-0.dotdeb.0 MySQLデータベースサーバーバイナリ

For CentOS:

# rpm -qa | grep mysql-server mysql-server-5.1.45-1.el5.remi
  1. http://www.mysql.com/downloads/mysql/ から、サーバーにインストールされているのと同じバージョンのMySQLソースコードをダウンロードします。バージョンは一致する必要があります! 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'

両方のアーカイブを抽出します:

# tar -xzvf mysql-5.1.45.tar.gz  
# tar -xzvf sphinx-0.9.9.tar.gz
  1. sphinxからmysqlへのmysqlseディレクトリをコピーします:
# cp -R sphinx-0.9.9/mysqlse/ mysql-5.1.45/storage/sphinx

ビルド:

cd mysql-5.1.45 sh BUILD/autorun.sh; ./configure; make
  1. 休憩を取ってください。これには少し時間がかかります。

  2. Sphinx.SOファイルをMySQLプラグインディレクトリにコピーします:

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

プラグインディレクトリは、システムによって異なる場合があります。

  1. rootユーザーとしてmysqlコンソールにログインします。Sphinxプラグインをインストールします。
# mysql -u root -p -h localhost mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';

Sphinxエンジンが有効になっているか確認します:

mysql> show engines;
mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | トランザクション、行レベルロック、および外部キーをサポートします     | YES          | YES  | YES        |
| MRG_MYISAM | YES     | 同一のMyISAMテーブルのコレクション                          | NO           | NO   | NO         |
| BLACKHOLE  | YES     | /dev/nullストレージエンジン (書き込んだものはすべて消えます) | NO           | NO   | NO         |
| CSV        | YES     | CSVストレージエンジン                                             | NO           | NO   | NO         |
| SPHINX     | YES     | Sphinxストレージエンジン0.9.9                                    | NO           | NO   | NO         |
| FEDERATED  | YES     | Federated MySQLストレージエンジン                                 | NO           | NO   | NO         |
| ARCHIVE    | YES     | アーカイブストレージエンジン                                         | NO           | NO   | NO         |
| MEMORY     | YES     | ハッシュベース、メモリに保存、一時テーブルに便利      | NO           | NO   | NO         |
| MyISAM     | DEFAULT | MySQL 3.23以降のデフォルトエンジンで、優れたパフォーマンス         | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+

それでおしまい!

プラグインがインストールされたかどうかを確認する別の方法は、次のコマンドを使用することです:

mysql> select * from mysql.plugin;
mysql> select * from mysql.plugin;
+--------+--------------+
| name   | dl           |
+--------+--------------+
| sphinx | ha_sphinx.so |
+--------+--------------+
1 row in set (0.00 sec)

後で何らかの理由でsphinxプラグインをアンインストールする必要がある場合は、次のようにします:

mysql> UNINSTALL PLUGIN sphinx;

注意:

  • 一部のMySQLバージョンにはバグがあることに注意してください - プラグインをインストールする際、プラグイン識別子は文字の大文字と小文字に関して一貫して処理されません。

  • 次のエラーが表示された場合:

mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; ERROR 1062 (23000): Duplicate entry 'sphinx' for key 'PRIMARY'

mysql.pluginテーブルからsphinxプラグインエントリを手動で削除する必要があります。アップグレード後にこのエラーが表示されることがあります。sphinxパスワードマネージャー、マスターパスワード、パスワードマネージャーまたはパスワードマネージャーとパスワードストア、ユーザーのマスターパスワードおよびランダムパスワードのようなパスワード管理は、次のガイドのいずれかで取り上げます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。