コマンドの羅列はここ。 https://gist.github.com/yoku0825/a85643cd9b5a4dcd8e1c
mysqldにINSTALL PLUGINする場合、SONAMEで指定されたファイルをplugin_dirから読み出すので、plugin_dir(暗黙のデフォルトはbasedir/lib/plugin) だけを打ち分けてやればOKなはず。
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz $ tar xzf mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz $ sudo ln -s $PWD/mysql-5.6.24-linux-glibc2.5-x86_64 /usr/local/mysql $ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz $ tar xzf mysql-5.6.24.tar.gz $ sudo useradd mysql
ここまではフツウ。
$ sudo mkdir /usr/local/mysql/{stable_lib,nightly_lib}
plugin_dir用のディレクトリを2つ作ってやる。
$ wget http://packages.groonga.org/source/groonga/groonga-5.0.3.tar.gz $ tar xzf groonga-5.0.3.tar.gz $ cd groonga-5.0.3 $ ./configure --prefix=/usr/local/groonga_stable $ make $ sudo make install $ cd ../ $ wget http://packages.groonga.org/nightly/groonga-5.0.3.2015.05.28.tar.gz $ tar xzf groonga-5.0.3.2015.05.28.tar.gz $ cd groonga-5.0.3.2015.05.28 $ ./configure --prefix=/usr/local/groonga_nightly $ make $ sudo make install $ cd ../
2つのGroongaを違うディレクトリーにインストールして、
$ wget http://packages.groonga.org/source/groonga-normalizer-mysql/groonga-normalizer-mysql-1.0.9.tar.gz $ tar xzf groonga-normalizer-mysql-1.0.9.tar.gz $ cd groonga-normalizer-mysql-1.0.9 $ ./configure --prefix=/usr/local/groonga_stable PKG_CONFIG_PATH=/usr/local/groonga_stable/lib/pkgconfig $ make $ sudo make install $ make clean $ ./configure --prefix=/usr/local/groonga_nightly PKG_CONFIG_PATH=/usr/local/groonga_nightly/lib/pkgconfig $ make $ sudo make install $ cd ../ $ wget http://packages.groonga.org/source/mroonga/mroonga-5.02.tar.gz $ tar xzf mroonga-5.02.tar.gz $ cd mroonga-5.02 $ ./configure --prefix=/usr/local/groonga_stable --with-mysql-source=../mysql-5.6.24 --with-mysql-config=/usr/local/mysql/bin/mysql_config PKG_CONFIG_PATH=/usr/local/groonga_stable/lib/pkgconfig $ sed -ib 's|/usr/local/mysql/lib/plugin|/usr/local/mysql/stable_lib|' Makefile $ make $ sudo make install $ make clean $ ./configure --prefix=/usr/local/groonga_nightly --with-mysql-source=../mysql-5.6.24 --with-mysql-config=/usr/local/mysql/bin/mysql_config PKG_CONFIG_PATH=/usr/local/groonga_nightly/lib/pkgconfig $ sed -ib 's|/usr/local/mysql/lib/plugin|/usr/local/mysql/nightly_lib|' Makefile $ make $ sudo make install $ cd ..
groonga-normalizer-mysqlとMroongaを、PKG_CONFIG_PATHの値を書き換えつつmakeしてインストールする。
Mroongaのconfigureスクリプトの中でha_mroonga.soをインストールする先がmysql_config --pluginから取られているので、これをMakefileの中でいじってからmakeしてやると、それぞれのplugin_dirにインストールされます。手でコピーしてもいいです。
$ cd /usr/local/mysql $ scripts/mysql_install_db --user=mysql --datadir=./stable_data $ bin/mysqld_safe --no-defaults --user=mysql --datadir=./stable_data --socket=/tmp/stable.sock --port=13306 --plugin-dir=/usr/local/mysql/stable_lib & $ scripts/mysql_install_db --user=mysql --datadir=./nightly_data $ bin/mysqld_safe --no-defaults --user=mysql --datadir=./nightly_data --socket=/tmp/nightly.sock --port=23306 --plugin-dir=/usr/local/mysql/nightly_lib & $ alias stable="/usr/local/mysql/bin/mysql -uroot -S /tmp/stable.sock -P 13306" $ alias nightly="/usr/local/mysql/bin/mysql -uroot -S /tmp/nightly.sock -P 23306" $ stable < /usr/local/groonga_stable/share/mroonga/install.sql $ stable -e "create database d1" $ stable stable < data.sql $ nightly < /usr/local/groonga_stable/share/mroonga/install.sql $ nightly -e "create database d1" $ nightly nightly < data.sql $ stable -e "select @@plugin_dir" +------------------------------+ | @@plugin_dir | +------------------------------+ | /usr/local/mysql/stable_lib/ | +------------------------------+ $ nightly -e "select @@plugin_dir" +-------------------------------+ | @@plugin_dir | +-------------------------------+ | /usr/local/mysql/nightly_lib/ | +-------------------------------+ $ ldd /usr/local/mysql/*_lib/ha_mroonga.so /usr/local/mysql/nightly_lib/ha_mroonga.so: linux-vdso.so.1 => (0x00007fffeaf76000) libgroonga.so.0 => /usr/local/groonga_nightly/lib/libgroonga.so.0 (0x00007f00adc09000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f00ad8f7000) libm.so.6 => /lib64/libm.so.6 (0x00007f00ad673000) libc.so.6 => /lib64/libc.so.6 (0x00007f00ad2df000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f00ad0c8000) libz.so.1 => /lib64/libz.so.1 (0x00007f00aceb2000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f00accae000) librt.so.1 => /lib64/librt.so.1 (0x00007f00acaa5000) /lib64/ld-linux-x86-64.so.2 (0x0000003517400000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f00ac888000) /usr/local/mysql/stable_lib/ha_mroonga.so: linux-vdso.so.1 => (0x00007fff6c7ff000) libgroonga.so.0 => /usr/local/groonga_stable/lib/libgroonga.so.0 (0x00007f13f4307000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f13f3ff5000) libm.so.6 => /lib64/libm.so.6 (0x00007f13f3d71000) libc.so.6 => /lib64/libc.so.6 (0x00007f13f39dd000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f13f37c6000) libz.so.1 => /lib64/libz.so.1 (0x00007f13f35b0000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f13f33ac000) librt.so.1 => /lib64/librt.so.1 (0x00007f13f31a3000) /lib64/ld-linux-x86-64.so.2 (0x0000003517400000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f13f2f86000)
あとはdatadirをそれぞれ用意してやって、データを流し込めばおしまいと。
mysqld_multiを使って起動するならこんな感じのmy.cnfにしておく。
$ sudo vim /etc/my.cnf [mysqld_multi] no-log [mysqld1] basedir = /usr/local/mysql mysqld = /usr/local/mysql/bin/mysqld_safe datadir = /usr/local/mysql/stable_data socket = /tmp/stable.sock port = 13006 plugin-dir= /usr/local/mysql/stable_lib [mysqld2] basedir = /usr/local/mysql mysqld = /usr/local/mysql/bin/mysqld_safe datadir = /usr/local/mysql/nightly_data socket = /tmp/nightly.sock port = 23006 plugin-dir= /usr/local/mysql/nightly_lib $ mysqld_multi start 1,2 mysqld_multi log file version 2.16; run: Thu May 28 15:39:09 2015 Starting MySQL servers 150528 15:39:09 mysqld_safe Adding '/usr/lib64/libjemalloc.so.1' to LD_PRELOAD for mysqld 150528 15:39:09 mysqld_safe Adding '/usr/lib64/libjemalloc.so.1' to LD_PRELOAD for mysqld 150528 15:39:09 mysqld_safe Logging to '/usr/local/mysql/stable_data/error.log'. 150528 15:39:09 mysqld_safe Logging to '/usr/local/mysql/nightly_data/error.log'. 150528 15:39:09 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/stable_data 150528 15:39:09 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/nightly_data
これであとはやりたい放題。