先月、MariaDBにMroongaがバンドルされたので、早速インストールしてみました。
まだ公式ドキュメントに手順がなかったので調べながらでしたが、それでも30分かからずに終わったので感動的でした。
環境
- CentOS :
- 6.5
- MariaDB:
- 10.0.15
- Mroonga:
- 4.06
手順
最初に各種パッケージを最新にアップデート
$ sudo yum update -y
MariaDBの導入
Mroongaがバンドルされている、10.0.15をインストールします。
リポジトリの追加
$ sudo rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
$ sudo vi /etc/yum.repos.d/mariadb.repo
$ cat /etc/yum.repos.d/mariadb.repo
------------------------------
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0.15/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=0
------------------------------
インストール
$ sudo rpm -e --nodeps mysql-libs # mysql-libsは干渉するので先に消しておきます。
$ sudo yum install -y --enablerepo=mariadb MariaDB-devel MariaDB-client MariaDB-server
起動確認
$ sudo service mysql start # MariaDBでもmysqlなのね…
$ sudo /usr/bin/mysqladmin -u root password 'mysqlpass'
$ sudo /usr/bin/mysqladmin -u root -h v157-7-239-240.z1d8.static.cnode.jp password 'mysqlpass'
$ mysql -uroot -pmysqlpass
> exit
MariaDBのインストールはこれでOKです。
適宜、必要に応じてmy.cnfを編集してください。
Mroongaを有効にする
MariaDBにバンドルされているMroongaはデフォルトでは無効状態となっています。
これを有効にしてあげます。
念のため、本当に無効になっているのか確認。
事前確認
SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)
一覧に表示されないという事から、無効になっていると確認できます。
以下のコマンドで有効化します。
Mroongaの有効化
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';
CREATE FUNCTION mroonga_escape RETURNS STRING SONAME 'ha_mroonga.so';
事後確認
SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| Mroonga | YES | CJK-ready fulltext search, column store | NO | NO | NO |
| FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
11 rows in set (0.00 sec)
Mroongaが加わったことを確認できたら終わりです。
サーバの再起動は不要です。
びっくりするぐらい手軽です。
制約事項
インストールがとても簡単なバンドル版ですが、残念ながら、以下のような制約があります。
- TokenMecabが使えない。
-
MySQL由来のNormalizer(名前にMySQLと入ってる奴)が使えない。勘違いでした(2014/12/18追記) - 10.0.15でバンドルされたMroongaは4.06なので、新機能のトークンフィルターが使えない。
結構、厳しいです。
これらの制約のため、バンドル版のMroongaはあくまで「お手軽に使いたい時」用という位置づけになりそうです。今の所。
こういった制約が受け入れられない方は、従来通り、ソースコードから入れましょう。こちらの手順が参考になるかもしれません。