PerphinaサーバーにSphinxSEをインストールする

SphinxPercona Serverも特別なプレゼンテーションは必要ありません。 SphinxSEはメインではありませんが、MySQLプラグインのストレージエンジンとして設計された、Sphinx searchdにアクセスするためのより便利なインターフェースです。



sphinxのドキュメントでは、SphinxSEのインストールプロセスについて説明していますが、機能しません。 カットの下で、パーコナをスフィンクスに接続するための短い指示があります。これは私にとってはうまくいき、おそらく数時間の健康的な睡眠を救うでしょう。



したがって、Percona Server 5.5.28とSphinx 2.0.6がパッケージからインストールされています。 私の場合、これはCentOS 6上のRPMです。

スフィンクスがインストールされていない場合、libmysqlclient.so.xが必要
また、システムにはライブラリの最新バージョンしかなく、Percona-Server-shared-compatパッケージをインストールするだけです


プラグインをビルドするには、両方のパッケージのソースが必要です。 ダウンロードして解凍:

[user@host ~]$ wget http://sphinxsearch.com/files/sphinx-2.0.6-release.tar.gz [user@host ~]$ tar -xzf sphinx-2.0.6-release.tar.gz [user@host ~]$ wget http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.28-29.1/source/Percona-Server-55-5.5.28-rel29.1.334.rhel6.src.rpm [user@host ~]$ rpm -i Percona-Server-55-5.5.28-rel29.1.334.rhel6.src.rpm [user@host ~]$ cd rpmbuild/ [user@host rpmbuild]$ rpmbuild -bp SPECS/percona-server.spec
      
      





公式ドキュメントから最初の2つのステップを実行します 。これらは両方の方法に共通です。

 [user@host rpmbuild]$ cd BUILD/Percona-Server-5.5.28-rel29.1/Percona-Server-5.5.28-rel29.1/ [user@host Percona-Server-5.5.28-rel29.1]$ cp -R ~/sphinx-2.0.6-release/mysqlse storage/sphinx [user@host Percona-Server-5.5.28-rel29.1]$ sh BUILD/autorun.sh
      
      





方法1-公式



MySQLを完全にビルドおよびインストールすることができます。 もちろん、これは私たちには適していません。 プラグインのみをビルドしようとしています:

 [user@host Percona-Server-5.5.28-rel29.1]$ ./configure [user@host Percona-Server-5.5.28-rel29.1]$ cd storage/sphinx/ [user@host sphinx]$ make
      
      





.soを収集し、MySQLプラグインを含むディレクトリにコピーします(パスを自分のものに置き換えます)。

 [root@host sphinx]# cp ha_sphinx.so /usr/lib64/mysql/plugin/
      
      





次に、プラグインをインストールするためにmysqlに進みます。

 [user@host sphinx]$ mysql -uroot -p mysql> INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so'; mysql> SHOW ENGINES;
      
      





エンジンのリストにSPHINXが表示されます-すべてが正常であるようです。 検索テーブルを作成します。

 CREATE TABLE sphinx ( id BIGINT UNSIGNED NOT NULL, weight INTEGER NOT NULL, query VARCHAR(3072) NOT NULL, INDEX(query) ) ENGINE=SPHINX CONNECTION="sphinx://127.0.0.1:9312/*";
      
      



ご注意
ドキュメントでは、BIGINTと127.0.0.1の代わりに、それぞれINTEGERとlocalhostが示されていますが、それらを使用してテーブルは作成されず、ホストは解決されません。


そして、セグメンテーションフォールトに陥ります。 DBMSは、このテーブルへのアクセスでクラッシュし、 show showクエリが実行された場合でもクラッシュします。



方法2-作業



Googleから 、cmakeのマジックキー-DBUILD_CONFIG = mysql_releaseについて学びます。

 [user@host Percona-Server-5.5.28-rel29.1]$ rm -f CMakeCache.txt [user@host Percona-Server-5.5.28-rel29.1]$ cmake . -DBUILD_CONFIG=mysql_release [user@host Percona-Server-5.5.28-rel29.1]$ cd storage/sphinx/ && make
      
      



非表示のテキスト
その投稿にはまだ多くの恐ろしいオプションがありますが、それらは完全なMySQLビルドにのみ必要です。


キャッシュを手動でクリアしてcmakeを開始する代わりに、cmake / configure.plを編集できます

 -my $cmakeargs = ""; +my $cmakeargs = "-DBUILD_CONFIG=mysql_release";
      
      



そしてconfigureを実行します。



ha_sphinx.soを/ usr / lib64 / mysql / plugin /にコピーし、 perconを再起動します。 奇妙なことに、動作します。



All Articles