Road To Nowhere

主にWebまわりのエンジニア的なお仕事に関するようなことのあれこれ。

Q4Mインストールメモ

Q4Mをインストールしようとして調べたところたくさんの情報が見つかったけど、
みなさんけっこう苦労されていて、さらに解決方法も各々で定まっていない様子。

傾向として、MySQLQ4Mをソースからインストールすると手こずるようだったので、
MySQLrpmでインストール後、Q4Mのバイナリ版をMySQLに組み込むという方法でインストールした。

環境

  • CentOS 5.7
  • Q4M 0.9.5
  • MySQL 5.1.55 (2011/11/30現在、Q4M 0.9.5が対応している最新)

MySQLのインストール

MySQL5.1.55のrpmを以下のページからGET。
MySQL :: MySQL Product Archives

最低限必要なのは「MySQL-server-community-xxx」と「MySQL-client-community-xxx」
それとunameなどを見て環境に合ったものを選択。

wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-server-community-5.1.55-1.rhel5.x86_64.rpm
wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-client-community-5.1.55-1.rhel5.x86_64.rpm

rpmコマンドでインストール。

rpm -i MySQL-server-community-5.1.55-1.rhel5.x86_64.rpm
rpm -i MySQL-client-community-5.1.55-1.rhel5.x86_64.rpm

MySQL起動してみる。

/etc/init.d/mysql start

コマンドラインに入ってみる。

/usr/bin/mysql -uroot

MySQLの--with-fast-mutexesオプションがONかOFFかで、Q4Mのどのバイナリ版を使用するか決まるのでここでチェック。

 mysql> show variables like 'timed_mutexes';
 +---------------+-------+
 | Variable_name | Value |
 +---------------+-------+
 | timed_mutexes | OFF   |
 +---------------+-------+

これでMySQLのインストール終了。

Q4Mのインストール

以下のページからバイナリ版をGET。
Index of /dist

fast-mutexesがOFFだったので取得するのはwithout-fast-mutexesのもの。

wget http://q4m.kazuhooku.com/dist/mysql-5.1.55-linux-x86_64-glibc23-without-fast-mutexes-q4m-0.9.5.tar.gz

あとはおまじないのように以下のコマンドを実行。

tar zxvf mysql-5.1.55-linux-x86_64-glibc23-without-fast-mutexes-q4m-0.9.5.tar.gz
cd q4m-0.9.5-linux-unknown/
cp -f libqueue_engine.so /usr/lib64/mysql/plugin
install -m 755 support-files/q4m-forward /usr/bin/q4m-forward
cat support-files/install.sql | /usr/bin/mysql -uroot

エラーが出なければこれでインストール完了。

いちおう確認

 /usr/bin/mysql -uroot
 mysql> show plugins;
 +------------+----------+----------------+--------------------+---------+
 | Name       | Status   | Type           | Library            | License |
 +------------+----------+----------------+--------------------+---------+
 | binlog     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | partition  | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | ARCHIVE    | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | BLACKHOLE  | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | CSV        | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | FEDERATED  | DISABLED | STORAGE ENGINE | NULL               | GPL     |
 | MEMORY     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | InnoDB     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | MyISAM     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | MRG_MYISAM | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
 | QUEUE      | ACTIVE   | STORAGE ENGINE | libqueue_engine.so | GPL     |
 +------------+----------+----------------+--------------------+---------+
 11 rows in set (0.00 sec)

一番最後の「QUEUE」が追加されていればOK。

注意点

上記の通り、MySQLrpmQ4Mはバイナリ版でインストールするなら特に難しいことはなかったけど、いちおう注意点。

  • MySQLrpmは環境単位、機能単位でたくさんのパッケージに分かれているので適切なものを選ぶこと。
  • with-fast-mutexesのオプションを確認して、Q4Mの2つのバイナリから正しい方を選ぶこと。