LoginSignup
4
6

More than 5 years have passed since last update.

UbuntuでMySQL 5.7をソースからビルドしてMroongaを導入する

Last updated at Posted at 2016-09-07

MySQL用の日本語全文検索エンジンMroongaをUbuntu 14.04で導入しようにも、PPAを使ったインストールだとMySQL 5.5が入ってしまうので、5.7で稼働させるためにMySQLをソースからビルドしてインストールする方法をとってみました。

本稿はその手順の記録です。

Mroonga - 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)。

Mroonga - MySQLで高速日本語全文検索

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_installationrootのパスワードを設定します。

/usr/local/mysql/bin/mysql_secure_installation

Mroongaを注入します。

/usr/local/mysql/bin/mysql -uroot -p < /usr/local/share/mroonga/install.sql

MySQLにログインし、SHOW ENGINESMroongaが表示されれば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.cnfbase_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

参考

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6