2009-11-12
Unbuntu 9.10 Server に MySQL 5.1 と InnoDB Plugin と Q4M をインストール。
MySQLはソースからではなく、aptitudeでdpkg版を入れて、それにInnoDB PluginとQ4Mをインストールする。
MySQLインストール
$ sudo aptitude install mysql-server libmysqlclient16-dev
途中でrootパスワードの設定を求められので、入力すると完了。
Ubuntu 9.10 からはMySQL 5.1が標準でインストールされる。リリースノート和訳
libmysqlclient16-devもMySQL関連の諸々をインストールしたりする際に必要なので、インストールしといた方が俄然良い。
インストールされたバージョンは5.1.37。
$ dpkg -l | grep mysql ii libdbd-mysql-perl 4.011-1ubuntu1 A Perl5 database interface to the MySQL data ii libmysqlclient-dev 5.1.37-1ubuntu5 MySQL database development files ii libmysqlclient16 5.1.37-1ubuntu5 MySQL database client library ii libmysqlclient16-dev 5.1.37-1ubuntu5 MySQL database development files - empty tra ii mysql-client-5.1 5.1.37-1ubuntu5 MySQL database client binaries ii mysql-common 5.1.37-1ubuntu5 MySQL database common files (e.g. /etc/mysql ii mysql-server 5.1.37-1ubuntu5 MySQL database server (metapackage depending ii mysql-server-5.1 5.1.37-1ubuntu5 MySQL database server binaries ii mysql-server-core-5.1 5.1.37-1ubuntu5 MySQL database core server files
InnoDB Plugin インストール
MySQLのバージョンが5.1.38以上であればInnoDB Pluginが同梱されているが、イントールされたのが5.1.37なので別途イントールするべし。
本家INNOBASE社のサイトに最新版(1.0.4)のMySQL 5.1.37向けのバイナリが用意されてるので、これを使う。
1. ダウンロードして、展開してコピー。
libmysqlclient16-devをインストールしてない場合は、/usr/lib/mysql/plugin/がない。
$ sudo /etc/init.d/mysql stop $ wget http://www.innodb.com/download/innodb_plugin/innodb_plugin-1.0.4-linux-i686-glibc23.tar.gz $ tar zxvf innodb_plugin-1.0.4-linux-i686-glibc23.tar.gz $ cd innodb_plugin-1.0.4-linux-i686-glibc23/ $ sudo cp ha_innodb.so /usr/lib/mysql/plugin/
2. /etc/mysql/my.cnfに設定を追加。
[mysqld] ignore_builtin_innodb plugin_load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb _cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so
3. mysqldを起動する。
$ sudo /etc/init.d/mysql start
4. show pluginsで確認して、ha_innodb.soが読み込まれてればOK。
$ mysql -uroot -p Enter password: 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 | | MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | InnoDB | ACTIVE | STORAGE ENGINE | ha_innodb.so | GPL | | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | +---------------------+----------+--------------------+--------------+---------+ 17 rows in set (0.00 sec) mysql>quit;
InnoDB Plugin が如何に素晴らしいかは専門家の方々の記事を読めば一目瞭然。
Open database life: InnoDB Plugin 1.0.4 - InnoDB史上極めて重要なリリース
SSDの真の性能を引き出す MySQL 5.1.38 InnoDB Plugin - SH2の日記
注意
Ubuntu 9.10 をインストールした直後の状態だと、上記の手順通りに実行してもha_innodb.soが読み込まれない。
なぜならAppArmorが動いているから。
AppArmorを止めるか、プロファイルを追加するかという事になるわけだが、迷わず止めた。
止め方はこちら。
Q4Mインストール
こちらはMySQL 5.1.37向けのバイナリはないので、最新版をソースからコンパイルする。
MySQLのソースも必要になるので、これはdpkg用のやつを使う。
1. 必要になるライブラリなどをインストール。
libssl-devはコンパイル時に、dpkg-debはソースパッケージが展開される際に必要になる。
コンパイル時に必要なg++やlibstdc++なんかも一緒にインストールされるので一石二鳥。
ちなみに、gccとかlibc6-devなんかはlibmysqlclient16-devをインストールした時に入っている。
$ sudo aptitude install libssl-dev dpkg-dev
2. ソースパッケージを取得。
ダウンロード後に展開してpatchあてまでやってくれる。
aptitudeでソースはどうやって取得するんだ?
$ cd /tmp $ sudo apt-get source mysql-server
3. Q4Mをダウンロードして、コンパイルして、インストール
'--with-mysql'の指定だけだと、make時にヘッダが読み込めなくてエラーになるので、CPPFLAGも指定してやる。
0.8.5以降はboostのヘッダが同梱されているので、boostをインストールしなくてもコンパイル出来る。
$ wget http://q4m.31tools.com/dist/q4m-0.8.9.tar.gz $ tar zxvf q4m-0.8.9.tar.gz $ cd q4m-0.8.9 $ ./configure CPPFLAGS=-I/usr/include/mysql --with-mysql=/tmp/mysql-dfsg-5.1-5.1.37 $ make $ sudo make install $ mysql -uroot -p -f mysql < support-files/install.sql
4. show pluginsで確認して、libqueue_engine.soが読み込まれてればOK。
InnoDB Plugin の場合と同様AppArmorが動いてると読み込まれない。
$ mysql -uroot -p Enter password: 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 | | MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | InnoDB | ACTIVE | STORAGE ENGINE | ha_innodb.so | GPL | | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb.so | GPL | | QUEUE | ACTIVE | STORAGE ENGINE | libqueue_engine.so | GPL | +---------------------+----------+--------------------+--------------------+---------+ 18 rows in set (0.00 sec) mysql> quit;
5.テストも実行してみる
DBIとかDBD::mysqlはMySQLをインストールした時に、依存関係でインストールされてる。
その他のテストに必要なモジュールもdpkg版があったのでそっちをインストール。
DBI_PASSWORDにはmysqlのrootのパスワードを入れる。
$ sudo aptitude install libdata-compare-perl liblist-moreutils-perl $ mysqladmin -uroot -p create test $ DBI_PASSWORD='passowrd' ./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.......................... Multireader benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 1.647 seconds Throughput: 3885.558 mess./sec. t/05-multireader..........................ok t/05-multirw..............................ok 1/4 Multi-reader-writer benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 2.315 seconds Throughput: 2764.806 mess./sec. t/05-multirw..............................ok t/05-multiwait............................ok 1/4 Multi-reader-writer benchmark result under semi-starvation: Number of messages: 6400 Number of readers: 32 Elapsed: 2.694 seconds Throughput: 2375.909 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 t/10-largedata............................skipped all skipped: set BIG_TESTS=1 to run theese tests All tests successful, 1 test skipped. Files=18, Tests=68921, 183 wallclock secs (77.56 cusr + 7.83 csys = 85.39 CPU) $ mysqladmin -uroot -p drop test
- 517 http://pipes.yahoo.com/pipes/pipe.info?_id=tDfBdGWF3RGl9XNm1L3fcQ
- 202 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=Gen&q=ubuntu+9.10+server+インストール&btnG=検索&lr=lang_ja&aq=f&oq=
- 121 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=com.ubuntu:ja:official&hs=37Q&q=ubuntu+9.10+インストール後&start=10&sa=N
- 112 http://d.hatena.ne.jp/grandVin/20091227/1261895339
- 85 http://www.google.co.jp/search?hl=ja&q=ubuntu+9.10+インストール+サーバー&lr=&aq=f&oq=
- 80 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADBR_jaJP316JP318&q=ubuntu+9.10+server
- 70 http://www.google.co.jp/search?hl=ja&source=hp&q=ubuntu+9.10+インストール server&lr=&aq=f&oq=
- 58 http://glowbe.blog4.fc2.com/blog-entry-860.html
- 56 http://tjun.jp/blog/2009/10/ldapclient_ubuntu/
- 56 http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=G7b&q=github+Gitリポジトリ mac&btnG=検索&lr=lang_ja&aq=f&oq=