ubuntu12.04LTSにmysql公式debパッケージをインストール及びhandlersocket と memcached plugin を有効にする

mysql公式debパッケージのインストール

mysql公式サイトからdebian用のパッケージをダウンロードしてインストールします。 oracleのアカウントが必要です。

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-debian6.0-x86_64.deb
$ sudo dpkg -i mysql-5.6.16-debian6.0-x86_64.deb

$ sudo apt-get install libaio1

$ sudo ln -s /opt/mysql/server-5.6/bin/* /usr/local/bin/

mysqlユーザ・グループの作成

$ groupadd mysql
$ useradd -r -g mysql mysql
$ sudo chown -R mysql:mysql /opt/mysql/server-5.6

mysqlサーバのデータディレクトリの作成

$ sudo mkdir /data/mysql
$ sudo chown mysql:mysql /data/mysql
$ sudo -u mysql /opt/mysql/server-5.6/scripts/mysql_install_db --user=mysql --datadir=/data/mysql

必要最小限のmy.cnf

$ sudo vi /etc/my.cnf
[mysqld]
basedir = /opt/mysql/server-5.6
datadir = /data/mysql

自動起動スクリプトの設定

$ sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql
$ sudo update-rc.d mysql defaults
$ sudo service mysql start

handlersocket のインストール

handlersocket をインストールするための必要なものを揃える

$ sudo apt-get install git-core
$ sudo apt-get install libtool
$ sudo apt-get install autoconf
$ sudo apt-get install dpatch

handlersocketをコンパイルする為にmysqlのソースコードが必要です。downloadにはoracleのアカウントが必要。

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz
$ tar zxvf mysql-5.6.16.tar.gz

handlersocket本体のダウンロード

$ git clone git://github.com/DeNA/HandlerSocket-Plugin-for-MySQL.git
$ cd HandlerSocket-Plugin-for-MySQL

handlersocketのコンパイル・インストール

$ ./autogen.sh
$ ./configure --with-mysql-source=../mysql-5.6.16 --with-mysql-bindir=/opt/mysql/server-5.6/bin --with-mysql-plugindir=/opt/mysql/server-5.6/lib/plugin
$ make
$ sudo make install

handlersocketプラグインの有効化

$ mysql -uroot -p -e "install plugin handlersocket soname 'handlersocket.so';"
handlersocketが有効になったか確認します
$ mysql -uroot -p -e "show plugins;"
..........
| handlersocket              | ACTIVE   | DAEMON             | handlersocket.so | BSD     |

handlersocketにperlからアクセスするためのモジュールをインストール

$ cd perl-Net-HandlerSocket
$ perl Makefile.PL
$ make
$ sudo make install

handlersocketのオプションにloose_プリフィックスを付けることでhandlersocket が有効になっていない時mysqlを再起動してもmysqlが落ちてしまうことがなくなりますので looseプリフィックスは付けといたほうが良いです。

/etc/my.cnf
[mysqld]
basedir = /opt/mysql/server-5.6
datadir = /data/mysql

loose_handlersocket_port = 9998
loose_handlersocket_port_wr = 9999
loose_handlersocket_address =
loose_handlersocket_verbose = 0
loose_handlersocket_timeout = 300
loose_handlersocket_threads = 16
thread_concurrency = 128
open_files_limit = 65535

memcached プラグインの有効化

mysql5.6ではmemcached pluginは同梱されpluginが無効になっているのでmysql のコンソールからpluginを有効にするだけでokです。

mysql> install plugin daemon_memcached soname 'libmemcached.so';
mysql> show plugins;
| daemon_memcached           | ACTIVE   | DAEMON             | libmemcached.so  | GPL

memcached pluginで利用するconfigなどの設定を保存するデータベースとテーブルを作成します。

$ mysql -uroot -p < /opt/mysql/server-5.6/share/innodb_memcached_config.sql
$ mysql -uroot -p
mysql> use innodb_memcache;
mysql> show tables;
+---------------------------+
| Tables_in_innodb_memcache |
+---------------------------+
| cache_policies            | 
| config_options            | 
| containers                | 
+---------------------------+

memcached pluginで利用されるportはdefaultで11211ですが任意のport番号に変更する事も可能です。 /etc/my.cnfに以下のオプションでport 11222に変更出来ます。又loose_プリフィック スを付けることでmemcached pluginが有効になってない時にmysqlを再起動してもmysqlが落ちる心配がなくなります。

loose_daemon_memcached_option='-p 11222'

mysqlを再起動してtelnetでmemcacheに接続してみます。

$ sudo service mysql restart
$ telnet localhost 11222
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get AA
VALUE AA 8 12
HELLO, HELLO
END
created:

Back to top