MySQL用の日本語全文検索エンジンMroongaをUbuntu 14.04で導入しようにも、PPAを使ったインストールだとMySQL 5.5が入ってしまうので、5.7で稼働させるためにMySQLをソースからビルドしてインストールする方法をとってみました。
本稿はその手順の記録です。
環境
サーバー: ConoHa VPS メモリ4GBプラン
OS: Ubuntu 14.04(16.04も可)
ドキュメント
Mroongaの公式ドキュメントを参考にしました。
2.7. その他 — Mroonga v6.08 documentation
手順
必要な諸々をインストール
sudo apt-get update
sudo apt-get install cmake g++ libncurses5-dev zlib1g-dev
Groongaをインストール
MroongaのビルドにGroongaが必要なのでパッケージをインストールします。
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:groonga/ppa
sudo apt-get update
sudo apt-get install libgroonga-dev groonga-normalizer-mysql
MySQL 5.7をインストール
MySQL :: Download MySQL Community Server
「Select Platform」から「Source Code」を選択し、リストより「Generic Linux (Architecture Independent), Compressed TAR Archive Includes Boost Headers」のDownloadをクリックします。飛んだページ先下部の「No thanks, just start my download.」からリンクをコピーしておきます。
cd /usr/local/src
sudo wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.14.tar.gz
sudo tar xf mysql-boost-5.7.14.tar.gz
sudo mkdir -p /usr/local/build/mysql-5.7.14
cd /usr/local/build/mysql-5.7.14
sudo cmake /usr/local/src/mysql-5.7.14 \
> -DDOWNLOAD_BOOST=1 \
> -DWITH_BOOST=/usr/local/build/mysql-5.7.14/boost
sudo make -j4
sudo make install
メモリが足りていないとmake
で失敗します。失敗して再度インストールを試みる場合はCMakeCache.txt
を削除しないと上手くいかない場合があります。
rm CMakeCache.txt
Mroongaをインストール
Mroongaは頻繁に更新されているので、予め最新バージョンを確認しておきましょう(今回は6.08)。
cd /var/tmp
wget http://packages.groonga.org/source/mroonga/mroonga-6.08.tar.gz
tar xf mroonga-6.08.tar.gz
cd mroonga-6.08
./configure \
> --with-mysql-source=/usr/local/src/mysql-5.7.14 \
> --with-mysql-build=/usr/local/build/mysql-5.7.14 \
> --with-mysql-config=/usr/local/mysql/bin/mysql_config
make
sudo make install
MySQLを起動
mysql
ユーザーとグループを作成しパーミッションの設定をしておきます。
sudo groupadd mysql
sudo useradd -r -g mysql mysql
sudo chown -R mysql:mysql /usr/local/mysql
MySQLの初期設定をし、起動します。
sudo /usr/local/mysql/bin/mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
sudo /usr/local/mysql/support-files/mysql.server start
mysql_secure_installation
でroot
のパスワードを設定します。
/usr/local/mysql/bin/mysql_secure_installation
Mroongaを注入します。
/usr/local/mysql/bin/mysql -uroot -p < /usr/local/share/mroonga/install.sql
MySQLにログインし、SHOW ENGINES
でMroonga
が表示されればOKです。
mysql> 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 |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| Mroonga | YES | CJK-ready fulltext search, column store | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)
その他
mysqlコマンド
シンボリックリンクを作成します。
sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
次のコマンドが実行できればOKです。
mysql -uroot -p
my.cnf
my.cnf
はbase_dir
の直下に配置します。
sudo vi /usr/local/mysql/my.cnf
自動起動
/etc/init.d
にシンボリックリンクを作成し、sysv-rc-conf
でMySQLの自動起動を設定します。
sudo ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf mysql on
sudo sysv-rc-conf --list
また、service mysql
で起動や終了などができるようになります。
sudo service mysql reload