Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

CentOS6.xに最新版のMySQL5.6とmroongaを最速でRPMインストールする方法

CentOS-6.xの環境に MySQL-5.6.12 と フルテキスト検索ストレージエンジンであるmroongaの最新版を入れる方法を紹介します。

以下それぞれ、ステップを追って紹介します。

  • オラクル公式の MySQL-5.6 バイナリを yum (rpm)で入れる
  • MySQL-5.6.12 対応の mroonga-3.05 を yum (rpm)で入れる

更新履歴

  • 2013/10/23 補足トピック"最新のMySQLおよびmroongaでのビルド方法"を追加しました
  • 2013/06/29 mysql-mroonga-3.05リリースに合わせてリポジトリと記事の更新をしました
  • 2013/05/29 mysql-mroonga-3.04リリースに合わせてリポジトリと記事の更新をしました

最新のMySQLおよびmroongaでのビルド方法

RPMパッケージのビルド方法を解説した記事を、gihyo.jpに寄稿しました。

第8回 CentOS6でのRPMパッケージを用いた MySQL 5.6 & mroonga & PHP 5.4 環境の作り方:隔週連載groonga|gihyo.jp … 技術評論社
http://gihyo.jp/dev/clip/01/groonga/0008

最新のMySQLおよびmroongaを用いた環境を作成する場合には、上記記事にて解説する方法でmysql56-mroonga-${version}-${release}.el6.x86_64.rpmというPRMパッケージのビルドを行い、そのRPMパッケージを利用して、後述のインストール手順を読んで頂ければ幸いです。

想定環境

CentOS-6.4 (x86_64)

流れ

本日は、以下の流れで進めます。

  1. MySQL本体をインストール・起動
  2. MySQLパスワードを設定
  3. groongaの関連ライブラリインストール
  4. mysql56-mroongaのインストール(内部で INSTALL PLUGIN クエリ等を実行)

RPMパッケージの入手元

今回は以下で配布されているパッケージを利用して説明を行います。

step1: MySQL本体をインストール・起動

オラクル公式の MySQL-5.6.12 バイナリを yum (rpm) でインストールします。
以下記事を参考に、remi等の独自版ではなく「オラクル版」を入れて下さい。
インストールが終わりましたら、MySQLのmy.cnfの設定を済ませて起動しておきます。

CentOS6にMySQL-5.6系の最新バイナリをオラクル公式rpmを用いてインストールする方法
http://y-ken.hatenablog.com/entry/how-to-install-official-mysql5.6.x-on-centos6

読むのが面倒な場合には以下に抜粋したので、こちらをコピペ実行しても構いません。

$ sudo yum localinstall http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.12-1.el6.x86_64.rpm
$ sudo yum localinstall http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-shared-5.6.12-1.el6.x86_64.rpm \
http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-server-5.6.12-1.el6.x86_64.rpm \
http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-devel-5.6.12-1.el6.x86_64.rpm \
http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-client-5.6.12-1.el6.x86_64.rpm
$ sudo vi /etc/my.cnf # 起動前に行いたい設定変更を行う
$ sudo /etc/init.d/mysql start

step2: MySQLパスワードを設定

MySQL 5.6からはインストール直後でもroot+パスワードなしでのログインが出来なくなりました。 /root/.mysql_secretにあるパスワードでログインし、パスワードを再設定する必要があります。
設定する際、従来のように空パスワードにも出来ますが、出来れば推測しづらい英数字が良いですね。

# The random password set for ...の行末にあるランダムな英数字がパスワードです
$ sudo cat /root/.mysql_secret

# そのパスワードを使って認証します
$ mysql -uroot -p

# MySQLの対話モードになったら、'NEW_PASS'の箇所を書き換えて新しいパスワードを設定しましょう。
mysql > SET PASSWORD FOR root@localhost=PASSWORD('NEW_PASS');

# 設定したら、反映して対話モードを終了します
mysql > FLUSH PRIVILEGES;
mysql > quit

step3: groongaの関連ライブラリインストール

ここからはフルテキスト検索ストレージエンジンであるmroongaのインストールを行います。 まずは事前にgroongaリポジトリを登録します。

$ sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm

mysql56-mroongaの依存関係にあるmecabおよびgroonga関連のパッケージをインストールします。

$ sudo yum install mecab mecab-devel mecab-ipadic --disablerepo=* --enablerepo=groonga
$ sudo yum install groonga-libs groonga-tokenizer-mecab groonga-normalizer-mysql --disablerepo=* --enablerepo=groonga

step4: mysql56-mroongaのインストール

最後に、CentOS6.4+MySQL-5.6.12環境向けに私がビルドしたmysql56-mroongaを入れます。

$ sudo yum localinstall http://y-ken.github.io/package/centos/6/x86_64/mysql56-mroonga-3.05-1.el6.x86_64.rpm

補足 最新版はCentOS6でのRPMパッケージを用いた MySQL 5.6 & mroonga & PHP 5.4 環境の作り方:隔週連載groongaをご参照の上、RPMパッケージのビルドをお願いします。

MySQLがmroongaを認識しているか、mysqlコマンドで確認してみましょう。

# mroongaという行があれば期待通りです
$ mysql -uroot -p -e "SHOW PLUGINS"
+----------------------------+----------+--------------------+---------------+---------+
| Name                       | Status   | Type               | Library       | License |
+----------------------------+----------+--------------------+---------------+---------+
...snip...
| mroonga                    | ACTIVE   | STORAGE ENGINE     | ha_mroonga.so | GPL     |
...snip...
+----------------------------+----------+--------------------+---------------+---------+

# 3.05であれば、後述のような結果が返ります
$ mysql -uroot -p -e "SHOW VARIABLES LIKE 'mroonga_%'"
+------------------------------------+-------------+
| Variable_name                      | Value       |
+------------------------------------+-------------+
| mroonga_database_path_prefix       |             |
| mroonga_default_parser             | TokenBigram |
| mroonga_default_wrapper_engine     |             |
| mroonga_dry_write                  | OFF         |
| mroonga_enable_optimization        | ON          |
| mroonga_libgroonga_version         | 3.0.5       |
| mroonga_log_file                   | groonga.log |
| mroonga_log_level                  | NOTICE      |
| mroonga_match_escalation_threshold | 0           |
| mroonga_version                    | 3.05        |
+------------------------------------+-------------+

以上で完了です。簡単ですね!

最後に

MySQL-5.6の異なるバージョンでビルドを個別に行いたい方向けに、mysql56-mroongaSRPMファイルもGitHubにて公開しております。 そして、CentOS6.4+MySQL-5.6.12環境向けにmysql56-mroongaをビルドする方法は、後日記事にしたいと考えております。