CentOS/MySQL InnoDB Plugin を追加インストールする
目次 |
RHEL 6.3バンドル版MySQL 5.1.61がInnoDB Pluginをサポート - SH2の日記
|
Scientific Linux 6.0 (CentOS 6.0) の標準リポジトリを利用し MySQL Server (mysql-server) をインストールしても、InnoDB Plugin はインストールされない。(InnoDB Plugin が無効にされビルドされている。)
InnoDB Plugin は MySQL 5.1.38 から正式版(GA, Generally Available)としてリリースされており MySQL に付属され配布されている。
Scientific Linux 6.0 (CentOS 6.0) に採用されている MySQL 5.1.52 は InnoDB Plugin を有効にしてビルドしなおすことで、InnoDB Plugin を利用することができるようになる。
InnoDB Plugin を有効にし再ビルド
標準リポジトリで配布されている MySQL のソース RPM を基に、InnoDB Plugin を有効にし再ビルドする。
- MySQL のソース RPM をダウンロード
- ソース RPM をインストールし、spec ファイルを編集
- configure オプションに --with-plugins-innodb_plugin を追記する
- ビルドする
- rpmbuild/RPM/ に RPM ファイルが完成。
wget http://ftp.riken.jp/Linux/scientific/6.0/SRPMS/vendor/mysql-5.1.52-1.el6_0.1.src.rpm
rpm -ihv mysql-5.1.52-1.el6_0.1.src.rpm vi rpmbuild/SPECS/mysql.spec
%configure \ --with-readline \ --with-ssl=/usr \ --without-debug \ --enable-shared \ --with-embedded-server \ --localstatedir=/var/lib/mysql \ --with-unix-socket-path=/var/lib/mysql/mysql.sock \ --with-mysqld-user="mysql" \ --with-extra-charsets=all \ --with-big-tables \ --with-pic \ --with-plugin-innobase \ --with-plugins-innodb_plugin \ --with-plugin-partition \ --enable-local-infile \ --enable-largefile \ --enable-thread-safe-client \ --disable-dependency-tracking
rpmbuild -bb rpmbuild/SPECS/mysql.spec
root だと test できないということなので、--define='runselftest 0' を付ける。
rpmbuild -bb --define='runselftest 0' rpmbuild/SPECS/mysql.spec
再ビルドした mysql-server-5.1.52-1.el6.1.x86_64.rpm をインストールすることで、InnoDB Plugin が /usr/lib64/mysql/plugin/ にインストールできる。
mysql-server をインストール済みの場合は、mysql-server-5.1.52-1.el6.1.x86_64.rpm を展開し、InnoDB Plugin だけをコピーしても動作する。
rpmdev-extract rpmbuild/RPMS/x86_64/mysql-server-5.1.52-1.el6.1.x86_64.rpm cd mysql-server-5.1.52-1.el6.1.x86_64/usr/lib64/mysql/plugin/ cp -r ha_innodb_plugin.* /usr/lib64/mysql/plugin/
InnoDB Plugin を有効にする
InnoDB Plugin はインストールするだけでは有効にならない。
my.cnf に次の行を追記する必要がある。
ignore-builtin-innodb plugin-load = innodb=ha_innodb_plugin.so; innodb_trx=ha_innodb_plugin.so; innodb_locks=ha_innodb_plugin.so; innodb_lock_waits=ha_innodb_plugin.so; innodb_cmp=ha_innodb_plugin.so; innodb_cmp_reset=ha_innodb_plugin.so; innodb_cmpmem=ha_innodb_plugin.so; innodb_cmpmem_reset=ha_innodb_plugin.so
動作確認
mysql> show plugins; +---------------------+--------+--------------------+---------------------+---------+ | Name | Status | Type | Library | License | +---------------------+--------+--------------------+---------------------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | partition | ACTIVE | STORAGE ENGINE | NULL | GPL | | CSV | ACTIVE | 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_plugin.so | GPL | | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL | | INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL | | INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL | | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL | | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL | | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL | | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so | GPL | +---------------------+--------+--------------------+---------------------+---------+