MySQL5.6をソースからインストール

今回の記事では、LAMP環境構築のため、前回の記事のApacheに加えて、MySQLをソースからインストールする手順を説明していきます。今回の作業は主に[こちらのサイト](http://qiita.com/nobu_blast/items/dfe92a7c14136d1dafe9)<sub><a href=#1>1</a></sub>を参考に行いました。

# 1. MySQLのダウンロード
まず、MySQLのインストール手順を説明していきますが、「[MySQLの公式ページ](http://dev.mysql.com/)<sub><a href=#2>2</a></sub> > Downloads > Other Downloads > MySQL Mirrors > [Internet Initiative Japan Inc., Japan  FTP](ftp://ftp.iij.ad.jp/pub/db/mysql/Downloads/)」ページからソースをダウンロードしてきます。
2015年9月6日現在で、更新日を確認するとMySQL 5.7が最新のようでしたが調べてみたところ MySQL 5.7はRC(Release Candidate)版<sub><a href=#3>3</a></sub>といって、次回リリースの候補版らしいので、今回はMySQL 5.6を利用します。

```
# cd /usr/local/src
# wget ftp://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz
# tar xzvf mysql-5.6.26.tar.gz 
```

# 2. CMakeのインストール
続いて、MySQLをソースからインストールする場合、./configureではなくCMakeが必要なので[CMakeの公式サイト](http://www.cmake.org/)<sub><a href=#4>4</a></sub>からダウンロードして、インストールします。

```
# cd ../
# wget http://www.cmake.org/files/v3.3/cmake-3.3.1.tar.gz
# tar xzvf cmake-3.3.1.tar.gz
# cd cmake-3.3.1
# ./configure
# make
# porg -lD "make install"
```

# 3. ncursesのインストール
MySQLをソースからインストールする場合、ncursesというテキストユーザインタフェースを作成するためのAPIを提供するライブラリも必要となるため、[公式サイト](http://www.gnu.org/software/ncurses/ncurses.html)<sub><a href=#5>5</a></sub>からソースをダウンロードして、インストールします。

```
# cd ../
# wget ftp://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
# tar xzvf ncurses-6.0.tar.gz 
# cd ncurses-6.0
# ./configure --with-shared --with-normal
# make
# porg -lD "make install"
```

# 3. MySQLのインストール
MySQLをcmakeでコンパイルする際のオプションは[こちらのページ](http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.6/en/source-configuration-options.html)に書いてあります。
今回は、文字コードをutf-8に設定する **-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci** オプションとSSLを有効にする **-DWITH_SSL=bundled** オプションをつけておきます。

```
# cd ../mysql-5.6.26
# cmake . -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=bundled
# make    // 結構時間がかかります
# porg -lD "make install"
# /usr/local/mysql/bin/mysql -V
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.6.26, for Linux (x86_64) using  EditLine wrapper
```

# 4. MySQLの初期設定
次にMySQLの初期設定を行います。私はここの設定にかなり手間取りました。

```
# groupadd mysql    // mysqlグループの作成
# useradd -r -g mysql mysql    // mysqlユーザの作成
# chown -R mysql:mysql /usr/local/mysql
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# /usr/local/mysql/support-files/mysql.server start    // MySQLの起動
Starting MySQL
. * 
```

mysqlのシンボリックリンクを作成し、**mysql -u root** ログインできれば完了です。

```
# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
# exit
$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
```

MySQLを停止するときは以下のコマンドを入力します。

```text
# /usr/local/mysql/support-files/mysql.server stop
Shutting down MySQL
. * 
```

# 5. MySQLの自動起動設定
最後にMySQLの自動起動設定について説明していきます。以下のコマンドを入力すれば完了です。

```text
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
# chmod +x /etc/init.d/mysql    // ここはいらないかも
# chkconfig --add mysql
# chkconfig --list | grep mysql
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off
# service mysqld start
```

# 付録
* MySQLのプロセス確認コマンド

```
$ ps aux | grep mysql
```

# 参考文献
1. CentOS6.x - CentOS6.3でMySQL5.6.14をソースからインストール - Qiita, http://qiita.com/nobu_blast/items/dfe92a7c14136d1dafe9, Online; accessed 6-September-2015.
2. MySQL __ The world's most popular open source database, http://www.mysql.com/, Online; accessed 6-September-2015.
3. 意外と知らないバージョン表記・数字の豆知識 - ＠IT, http://www.atmarkit.co.jp/fjava/column/andoh/andoh51.html, Online; accessed 6-September-2015.
4. CMake, http://www.cmake.org/, Online; accessed 6-September-2015.
5. Announcing ncurses 6.0 - GNU Project - Free Software Foundation (FSF), http://www.gnu.org/software/ncurses/ncurses.html, Online; accessed 6-September-2015.
6. MySQL5.5 を CentOS6.3 にソースコードからインストールする手順 _ CodeNote.net, http://codenote.net/mysql/229.html, Online; accessed 7-September-2015.
7. [MySQL] MySQL 5.5をソースからインストール,  http://sweng.web.fc2.com/ja/database/mysql/install-mysql5.5-from-src-on-debian.html, Online; accessed 7-September-2015.
8. MySQL5.5.27で4時間奮闘 - ブログ　ひまつぶし, http://blog.goo.ne.jp/ucchanx/e/ebca42809a3370b28f375e88405a3fb4, Online; accessed 7-September-2015.