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: