Q4Mをソースからインストールしてみたメモ
mysql5.1もようやくStableになったことですし、うれしいので話題のQ4Mをインストールしてみました。
今回はソースからコンパイルしてみました。
以下、その際のインストールメモです。
今回インストールするのは各々このバージョンです。
* mysql-5.1.30.tar.gz
* q4m-0.8.3.tar.gz
mysqlのインストール
まずは mysql-5.1.30 です。適当にコンパイルしてください。
configreに渡すオプションは用途によって色々代わると思いますが、今回はこんなパラメータでconfigureしました。
$ ./configure \ --prefix=/usr/local/mysql \ --libexecdir=/usr/local/mysql/bin \ --sbindir=/usr/local/mysql/sbin \ --with-charset=utf8 \ --with-extra-charsets=all \ --without-readline \ --enable-thread-safe-client \ --enable-local-infile \ --with-berkley-db \ --with-innodb \ --with-federated-storage-engine \ --with-archive-storage-engine \ --with-csv-storage-engine \ --with-blackhole-storage-engine \ --with-fast-mutexes \ --with-example-storage-engine
あとはmake & make install。
できあがったら初期化します。
$ make # make install # /usr/local/mysql/bin/mysql_install_db -u mysql
インストールが終わったらrootにパスワード振ったり作業用のアカウント作ったりと、いろいろ環境整備があると思いますが、そこは割愛します。
Q4Mのインストール
次はいよいよQ4Mです。
./configure --with-mysql=/home/hoge/mysql-5.1.30 --prefix=/usr/local/mysql
with-mysqlで指定してるのは先ほどインストールしたmysql5.1.30のディレクトリのパスです。
はまりどころ
このwith-mysqlで指定したパスですが、ここは絶対パスで書かねばなりません。
私は ~/mysql-5.1.30 と書いてしまって、しばらく何度もmake でこけてしまっていました。(これってアタリマエか?)
あともう1点はまりどころがありました。
q4mのconfigureは必ずコンパイル作業をしたmysql-5.1.30のディレクトリを指定してください。
落としてきたままのきれいな状態のものだとmy_conf.hがないよといってオコラれてしまいます。
さてさてmakeしてみます。たぶん通るはずです。
ところが!make testがとおらない。。
これは単純にperlモジュールがいくつか入っていなかったからです。
今回試した環境では、perlもソースからインストールしたばかりのきれいな状態のものだったので、DBIとDBD::mysqlがはいってなかったんですね。
なのでCPANシェルからインストールします。
余談ですが、DBD::mysqlはmake testのときにデフォルトでrootユーザを使うので、rootにパスワードをふってあるとmake testでコケマス。
なのでちょっと面倒ですが手動でperl Makefile.PL --testuser=xxx みたいな指定しないとだめなのでちょっと注意が必要です。
あとついでにData::CompareとList::MoreUtisもCPANシェルからインストールしておきましょう。あとでq4mのmake testで必要になります。
必要なCPANモジュールもはいったところでインストールしてみましょう。
sudo make install
mysql -u root -p < support-files/install.sql
さてさて、インストールができたらrun-test.plを叩いてインストール後テストを実施してみます。
長々とテストがはじまりますyo。
./run_tests.pl t/01-base-rnd_pos.........................ok t/01-base.................................ok t/02-queue-cond...........................ok t/02-queue-owned-delete...................ok t/02-queue................................ok t/03-queue-error-wait.....................ok t/03-queue-error..........................ok t/04-blob-cond............................ok t/04-blob.................................ok t/05-multireader..........................1/4 Multireader benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 0.206 seconds Throughput: 31054.973 mess./sec. t/05-multireader..........................ok t/05-multirw..............................1/4 Multi-reader-writer benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 0.304 seconds Throughput: 21028.972 mess./sec. t/05-multirw..............................ok t/05-multiwait............................1/4 Multi-reader-writer benchmark result under semi-starvation: Number of messages: 6400 Number of readers: 32 Elapsed: 0.489 seconds Throughput: 13096.962 mess./sec. t/05-multiwait............................ok t/06-multi................................ok t/07-trans................................ok t/08-forward..............................ok t/09-pqueue-single-table-wake-listener....ok t/09-pqueue-single-table..................ok All tests successful. Files=17, Tests=68921, 167 wallclock secs ( 8.86 usr 0.53 sys + 105.01 cusr 4.93 csys = 119.33 CPU) Result: PASS
お、成功した。
mysql にログインして確認してみます。
mysql> show plugins; +------------+--------+----------------+--------------------+---------+ | Name | Status | Type | Library | License | +------------+--------+----------------+--------------------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL | | BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL | | CSV | ACTIVE | 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 | +------------+--------+----------------+--------------------+---------+ 9 rows in set (0.00 sec)
QUEUEってストレージエンジンができあがりました!
めでたしめでたし。