MySQL5.5 に groongaストレージエンジン入れてみた

groongaストレージエンジンは現在 MySQL 5.1 にしか対応してないようですが、MySQL 5.5.6-rc に入れてみました。

環境は CentOS 5.5 x86_64 です。

用意するもの

groongaのインストール

$ tar xpvfz .../groonga-1.0.2.tar.gz
$ ./configure --prefix=/usr/local/groonga
$ make
$ sudo make install

MySQLのバイナリのインストール

$ sudo -s
# useradd -r mysql
# cd /usr/local
# sudo tar xpvfz .../mysql-5.5.6-rc-linux2.6-x86_64.tar.gz
# sudo ln -s mysql-5.5.6-rc-linux2.6-x86_64 mysql
# cd mysql
# ./scripts/mysql_install_db
# chown -R mysql:mysql .

groongaストレージエンジンのインストール

コンパイルにMySQLのソースが必要です。ソースが展開されているだけでよくて、MySQLをコンパイルする必要はありません。

groonta-storage-engine-0.2 はそのままでは MySQL 5.5 に対応していないため以下のパッチを適用しました。
コンパイルが通るように適当に書き換えただけなので怪しいですが…。

--- ha_mroonga.cc.orig	2010-09-16 16:54:45.000000000 +0900
+++ ha_mroonga.cc	2010-09-29 13:24:06.000000000 +0900
@@ -22,9 +22,11 @@
 #endif
 
 #define MYSQL_SERVER 1
+#define DBUG_OFF 1
 
-#include <mysql_priv.h>
-#include <mysql/plugin.h>
+#include <sql_plugin.h>
+#include <sql_priv.h>
+#include <sql_show.h>
 #include <sql_select.h>
 #include <pthread.h>
 #include <sys/types.h>
$ tar xpvfz .../mysql-5.5.6-rc.tar.gz
$ tar xpvfz .../groonga-storage-engine-0.2.tar.gz
$ cd groonga-storage-engine-0.2
$ patch -p0 < .../groonga-storage-engin-0.2_for-mysql5.5.patch
$ PKG_CONFIG_PATH=/usr/local/groonga/lib/pkgconfig ./configure --with-mysql-source=../mysql-5.5.6-rc --with-mysql-config=/usr/local/mysql/bin/mysql_config
$ make
$ sudo make install

これで MySQL で次のようにすると groonga ストレージエンジンが使用できるようになります。

mysql> install plugin groonga soname 'ha_groonga.so';

注意

  • 上にも書きましたがパッチは適当に作ったものです。
  • MySQL の新しい charset utf8mb4 は groonga ストレージエンジンは使えないようです。utf8 ではちゃんと使用できました。