MySQL5.5をソースから入れつつmroonga3を入れる

各URLを参照しながらやったけど、バージョンが違ったり微妙にうまくいかなかったりしたのでメモ。
CentOS6.4にそのままコピペして流す自分用だったり。


# MySQL
# http://d.hatena.ne.jp/takjoe/20120109/1326052894
# http://kamip.jp/mysql/mysql5-5-28-%E3%82%92%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

cd /usr/local/src/
groupadd mysql
useradd -r -g mysql mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.32.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/
tar zxvf mysql-5.5.32.tar.gz
cd mysql-5.5.32

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.32 \
-DMYSQL_DATADIR=/var/lib/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_unicode_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLE_DTRACE=0 \
-DENABLE_GCOV=1 \
-DWITH_DEBUG=0 \
-DENABLE_DEBUG_SYNC=0

make
make install

cd /usr/local/mysql-5.5.32/
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql --datadir=/var/mysql/data
chown -R root .
chown -R mysql /var/mysql/data
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld

# mroonga
# http://d.hatena.ne.jp/takjoe/20120109/1326114952
# http://y-ken.hatenablog.com/entry/mroonga-create-function

yum -y install pkgconfig
cd /usr/local/src
wget http://packages.groonga.org/centos/groonga-repository-1.0.1-0.noarch.rpm
rpm -ivh groonga-repository-1.0.1-0.noarch.rpm
yum -y install groonga
yum -y install mecab-ipadic
cd /usr/local/src/
wget http://packages.groonga.org/source/mroonga/mroonga-3.05.tar.gz
tar zxvf mroonga-3.05.tar.gz
cd mroonga-3.05

./configure \
--with-mysql-source=/usr/local/src/mysql-5.5.32 \
--with-mysql-config=/usr/local/mysql-5.5.32/bin/mysql_config \
--with-default-parser=TokenMecab
make
nake install
service mysqld restart
/usr/local/mysql-5.5.32/bin/mysql

ここからMySQLのコマンド

INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';
CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so';
CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';
CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';
show variables like 'mroonga_%';
show engines;

use test;
CREATE TABLE diaries (
  id INT PRIMARY KEY AUTO_INCREMENT,
  content VARCHAR(255),
  FULLTEXT INDEX (content) COMMENT 'parser "TokenMecab"'
) ENGINE = groonga COMMENT = 'engine "innodb"' DEFAULT CHARSET utf8;
INSERT INTO diaries (content) VALUES ("明日の天気は晴れでしょう。");
INSERT INTO diaries (content) VALUES ("明日の天気は雨でしょう。");