かみぽわーる

kamipo's blog

mysqlにhandlersocket pluginを入れる

ほぼまっさらなUbuntu 10.04 LTSにmysql-5.1.50を入れたので、リリースされたばかりのhandlersocket pluginを入れたときのログ。
付属のMakefileがインストールパス決め打ちだったので、直に/usr/local以下に入れるようにしてます。

あとよくわからなくて苦労したのは、handlersocket_*なサーバ変数がpluginロードしないと設定できないのに、handlersocket_portを指定しないと接続できないので接続方法が分からなかった…。
INSTALL PLUGINしてからhandlersocket用のオプション指定してmysqldリスタートすれば普通に使えました。

cd /usr/local/src
git clone http://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL.git
cd HandlerSocket-Plugin-for-MySQL

libhsclientのインストール。

cd libhsclient
make
mkdir -p /usr/local/include/handlersocket
install -m 644 *.hpp /usr/local/include/handlersocket
install -m 644 libhsclient.a /usr/local/lib

handlersocket pluginのインストール。

sudo aptitude install zlib1g-dev
cd ../handlersocket
perl -i -pe 's{/usr(?=/include/handlersocket)}{/usr/local}' Makefile
MYSQL_INC=/usr/local/mysql/include MYSQL_SRC=/usr/local/src/mysql-5.1.50 make
install -m 755 handlersocket.so /usr/local/mysql/lib/mysql/plugin

Net::HandlerSocketのインストール。

cd ../perl-Net-HandlerSocket
perl -i -pe 's{/usr(?=/include/handlersocket)}{/usr/local}' Makefile.PL
perl Makefile.PL
make && make test && make install

handlersocket pluginを読み込む。

/usr/local/mysql/bin/mysqld_safe --skip-networking &
/usr/local/mysql/bin/mysql -u root -e "INSTALL PLUGIN handlersocket SONAME 'handlersocket.so'"
/usr/local/mysql/bin/mysql -u root -e "SHOW PLUGINS"

テスト。テストするのにDBIとDBD::mysqlが必要なので入れておくこと。

pkill mysql
/usr/local/mysql/bin/mysqld_safe --handlersocket_address=127.0.0.1 --handlersocket_port=9998 --handlersocket_port_wr=9999 &
cd ../regtest
make test