MySQL InnoDB Pluginの簡単なビルド手順
これまで数回に渡ってInnoDB Pluginのエントリを書いてきたので、InnoDB Pluginを試してみたくなったという方がいるかもしれませんね。そこで本日はそのような方がいることを期待して、InnoDB Pluginを組み込んだMySQLの簡単なビルド手順をご紹介します。本手順には以下のような特長があります。
- MySQLの長いconfigureオプションを覚えなくてよい。というかMySQLが何なのか知らなくてもできるレベル
- RPMができるのでインストール/アンインストールが簡単。試してみて飽きたらアンインストール可能
- 今後バージョンが上がってもおそらく手順は変わらない
- コピペでおk
対象OSはRed Hat Enterprise Linux 5とCentOS 5です。
一般ユーザでrpmbuidコマンドが使えるようにする(初回のみ)
$ cd $ echo "%_topdir $HOME/rpmbuild" > .rpmmacros $ mkdir rpmbuild $ cd rpmbuild $ mkdir BUILD RPMS SOURCES SPECS SRPMS
一般ユーザでrpmbuildコマンドが使えるように、設定ファイルと作業用ディレクトリを作成します。なぜ一般ユーザでビルドするのかというと、MySQLにはrootでビルドするとmake testに全部失敗するというちょっとした罠があるためです。
MySQL Community ServerのSource RPMとInnoDB Pluginのソースをダウンロードする
$ cd $ wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-community-5.1.36-0.rhel5.src.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/ $ wget http://www.innodb.com/download/innodb_plugin/innodb_plugin-1.0.3.tar.gz
Source RPMをインストールする
$ cd $ rpm -ivh MySQL-community-5.1.36-0.rhel5.src.rpm
ソースを展開する
$ cd ~/rpmbuild/SPECS $ rpmbuild -bp --define 'community 1' mysql-5.1.36.rhel5.spec
ちなみに--define 'enterprise_commercial_advanced 1'とすると、商用版と同じものが作れます。豆知識。
InnoDBのソースをInnoDB Pluginのものに差し替える
$ cd ~/rpmbuild/BUILD/mysql-5.1.36/storage $ rm -rf innobase $ tar xvzf ~/innodb_plugin-1.0.3.tar.gz $ mv innodb_plugin-1.0.3 innobase
ソースをアーカイブする
$ cd ~/rpmbuild/BUILD $ tar cvzf ../SOURCES/mysql-5.1.36.tar.gz mysql-5.1.36
BUILDディレクトリ以下を変更しただけでは次回のrpmbuildコマンドで再び上書きされてしまうため、元のアーカイブを更新しておきます。
SPECファイルを編集する
$ cd ~/rpmbuild/SPECS $ vi mysql-5.1.36.rhel5.spec
%if %{community} %define server_suffix -community-plugin %define package_suffix -community-plugin
ビルドしてできたRPMがオリジナルのものと区別できるように、server_suffixとpackage_suffixを変更しておきます。
ビルドする
$ cd ~/rpmbuild/SPECS $ export MYSQL_RPMBUILD_TEST=no $ rpmbuild -bb --define 'community 1' mysql-5.1.36.rhel5.spec
ここでMYSQL_RPMBUILD_TESTにnoを設定しておくと、make testをスキップすることができます。MySQLのmake testは数時間かかるため、どうしても待てない場合はこの環境変数を設定してください。
完成!
$ cd ~/rpmbuild/RPMS/i386 $ ls MySQL-client-community-plugin-5.1.36-0.rhel5.i386.rpm MySQL-community-plugin-debuginfo-5.1.36-0.rhel5.i386.rpm MySQL-devel-community-plugin-5.1.36-0.rhel5.i386.rpm MySQL-embedded-community-plugin-5.1.36-0.rhel5.i386.rpm MySQL-server-community-plugin-5.1.36-0.rhel5.i386.rpm MySQL-shared-community-plugin-5.1.36-0.rhel5.i386.rpm MySQL-test-community-plugin-5.1.36-0.rhel5.i386.rpm
ね、簡単でしょう?
ビルドできたら、以下に示すようなInnoDB Pluginの新機能をぜひ試してみてください。