MySQLサーバ構築手順(CentOS 6.6にMySQL 5.7.5をソースからインストールする)

はじめに
===

新しく構築したCentOS 6.6サーバ(CentOSをminimalインストールしたサーバ)に対して、ソースからMySQL Community Server 5.7.5-m15(MySQL 5.7.5-m15)をインストールする手順です。

補足事項
===

2015年2月28日時点では、MySQL安定バージョン(Generally Available (GA) Release)の最新版は「MySQL 5.6.23」になります。

「MySQL 5.7.5-m15」は開発バージョン(Development Release)の最新版になります。

今回は「MySQL 5.7.5」系の評価・検証を行う為、「MySQL 5.7.5-m15」をインストールしますが、プロダクション環境でMySQLサーバを運用するなら、Generally Available (GA) ReleaseバージョンのMySQLを利用するのが安全かと思います。

対象環境
===

MySQLをインストールする環境は以下になります。

・CentOS release 6.6 (2.6.32-504.8.1.el6.x86_64)
・MySQL 5.7.5-m15

MySQL 5.7.5-m15のソースファイル
===

今回の例では、以下のサイトからMySQLソースファイルをダウンロードして、MySQL 5.7.5-m15をインストールします。

http://dev.mysql.com/get/downloads/mysql-5.7/mysql-5.7.5-m15.tar.gz

参考サイト
===

MySQLソースインストールにあたり、以下のページや書籍を参考にさせて頂きました。

http://qiita.com/ysk_1031/items/e3bf3fb20821314eb72d

http://www.amazon.co.jp/MySQL徹底入門-第3版-～5-5新機能対応～-遠藤-俊裕/dp/4798124230
　21ページ目 「2.2.4 ソースコードからのインストール」
　169ページ目 「4.5.8 初期の権限変更ツール mysql_secure_installationスクリプト」

MySQL 5.7.5-m15のソースインストール手順(事前準備)
===

**(1) MySQL 5.7.5-m15をインストールしたいCentOS 6.6サーバにrootユーザでログインします。**

**(2) CentOS 6.6サーバのカーネルやパッケージ類をアップデートします。**

```
[root@example-MySQL-5-7-5 ~]# yum -y update
```

**(3) MySQLインストールに必要なパッケージをインストールします。**

・wgetはMySQLソースのダウンロードに利用します。

・gcc-c++やcmakeはMySQLのコンパイル時に利用します。

・ncursesやzlibやreadlineはMySQLのビルド時に必要になります。

readlineはMySQLのコマンドラインインターフェイスでカーソル移動や履歴等の機能を実現するためのライブラリです。ncursesはreadlineをビルドする際に必要になります。

```
[root@example-MySQL-5-7-5 ~]# yum -y install wget
[root@example-MySQL-5-7-5 ~]# yum -y install gcc-c++
[root@example-MySQL-5-7-5 ~]# yum -y install cmake
[root@example-MySQL-5-7-5 ~]# yum -y install ncurses-devel
[root@example-MySQL-5-7-5 ~]# yum -y install zlib-devel
[root@example-MySQL-5-7-5 ~]# yum -y install readline-devel
```

・bison(バイソン:構文解析器を生成するパーサジェネレータ)をインストールします。

以前、bisonをインストールせずにMySQL 5.7.5-m15ソースファイルのcmakeを実行した時、「Bison executable not found in PATH」と表示されたので、bisonをインストールする事にしました。

```
[root@example-MySQL-5-7-5 ~]# yum -y install bison
```

```
------- [参考] bisonをインストールせずにcmakeを実行した時に表示されたメッセージ ---
CMake Warning at cmake/bison.cmake:20 (MESSAGE):
  Bison executable not found in PATH
Call Stack (most recent call first):
  libmysqld/CMakeLists.txt:116 (INCLUDE)
------------------------------------------------------------------------------
```

**(4) mysqlグループを作成します。**

```
[root@example-MySQL-5-7-5 ~]# cp -p /etc/passwd /etc/passwd.ORG
[root@example-MySQL-5-7-5 ~]# cp -p /etc/shadow /etc/shadow.ORG
[root@example-MySQL-5-7-5 ~]# cp -p /etc/group /etc/group.ORG
[root@example-MySQL-5-7-5 ~]# diff /etc/passwd /etc/passwd.ORG
[root@example-MySQL-5-7-5 ~]# diff /etc/shadow /etc/shadow.ORG
[root@example-MySQL-5-7-5 ~]# diff /etc/group /etc/group.ORG
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# groupadd mysql
[root@example-MySQL-5-7-5 ~]#
```

**(5) mysqlユーザを作成します。**

```
[root@example-MySQL-5-7-5 ~]# useradd -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)
[root@example-MySQL-5-7-5 ~]#
```

**(6) mysqlユーザにスイッチ出来ない事を確認します。**

```
[root@example-MySQL-5-7-5 ~]# su - mysql
This account is currently not available.
[root@example-MySQL-5-7-5 ~]#
```

**(7) 一度、CentOS 6.6サーバをリブートします。**

```
[root@example-MySQL-5-7-5 ~]# hostname
example-MySQL-5-7-5
[root@example-MySQL-5-7-5 ~]# reboot
```

MySQL 5.7.5-m15のソースインストール手順(MySQLソース入手)
===

**(8) CentOS 6.6サーバが起動してきたら、再度rootユーザでログインします。**

**(9) MySQLのソースファイルをダウンロードします。**

```
[root@example-MySQL-5-7-5 ~]# cd /usr/local/src
[root@example-MySQL-5-7-5 src]# pwd
/usr/local/src

[root@example-MySQL-5-7-5 src]# wget http://dev.mysql.com/get/downloads/mysql-5.7/mysql-5.7.5-m15.tar.gz

[root@example-MySQL-5-7-5 src]# ls -lrta /usr/local/src/mysql-5.7.5-m15.tar.gz
-rw-r--r--. 1 root root 46527024 Sep 19 16:25 /usr/local/src/mysql-5.7.5-m15.tar.gz
[root@example-MySQL-5-7-5 src]#
```

**(9) MySQLのソースファイルを展開します。**

```
[root@example-MySQL-5-7-5 src]# pwd
/usr/local/src
[root@example-MySQL-5-7-5 src]# tar zxvf /usr/local/src/mysql-5.7.5-m15.tar.gz
```

```
[root@example-MySQL-5-7-5 src]# cd /usr/local/src/mysql-5.7.5-m15
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# pwd
/usr/local/src/mysql-5.7.5-m15
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#
```

**(10) MySQLインストール先ディレクトリの初期状態を確認します。**

```
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# ls -lrta /usr/local/mysql
total 20
-rw-r--r--.  1 mysql mysql  124 Oct 16 22:56 .bashrc
-rw-r--r--.  1 mysql mysql  176 Oct 16 22:56 .bash_profile
-rw-r--r--.  1 mysql mysql   18 Oct 16 22:56 .bash_logout
drwxr-xr-x. 13 root  root  4096 Feb 28 00:25 ..
drwx------.  2 mysql mysql 4096 Feb 28 00:25 .
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#

[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# ls -lrta /var/lib/mysql
ls: cannot access /var/lib/mysql: No such file or directory
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQLコンパイル)
===

**(11) cmakeコマンドを実行し、展開したソースファイルからMySQLをコンパイルします。**

```
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# pwd
/usr/local/src/mysql-5.7.5-m15

[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT_DEFAULT=3306 -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=ON -DWITH_FEDERATED_STORAGE_ENGINE=ON -DWITH_ARCHIVE_STORAGE_ENGINE=ON -DWITH_BLACKHOLE_STORAGE_ENGINE=ON -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql

```

**(12) cmakeコマンドによるMySQLコンパイルの完了を待ちます。**

```
　　(中略)
-- Disabling -Wstrict-aliasing warning for building NDB
-- Not building NDB
-- Performing Test HAVE_PEERCRED
-- Performing Test HAVE_PEERCRED - Success
-- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl
-- Googlemock was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source.
-- If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://example.com:80
-- Performing Test HAVE_NO_UNUSED_TYPEDEFS
-- Performing Test HAVE_NO_UNUSED_TYPEDEFS - Success
-- Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl
-- CMAKE_BUILD_TYPE: RelWithDebInfo
-- COMPILE_DEFINITIONS: _GNU_SOURCE;_FILE_OFFSET_BITS=64;HAVE_CONFIG_H
-- CMAKE_C_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement
-- CMAKE_CXX_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql-5.7.5-m15
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQLビルド)
===

**(13) makeコマンドを実行し、MySQLをビルドします。**

```
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# pwd
/usr/local/src/mysql-5.7.5-m15
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# make
```

**(14) makeコマンドによるMySQLビルドの完了を待ちます。**

```
　　(中略)
Linking CXX executable mysql_embedded
[ 98%] Built target mysql_embedded
Scanning dependencies of target mysqltest_embedded
[ 98%] Building CXX object libmysqld/examples/CMakeFiles/mysqltest_embedded.dir/__/__/client/mysqltest.cc.o
Linking CXX executable mysqltest_embedded
[ 98%] Built target mysqltest_embedded
Scanning dependencies of target my_safe_process
[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o
Linking CXX executable my_safe_process
[100%] Built target my_safe_process
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# pwd
/usr/local/src/mysql-5.7.5-m15
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQLインストール)
===

**(15) MySQLをインストールします。**

```
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# pwd
/usr/local/src/mysql-5.7.5-m15
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# make install
```

**(16) MySQLがインストールされた事を確認します。**

```
　　(中略)
-- Installing: /usr/local/mysql/sql-bench/test-wisconsin
-- Installing: /usr/local/mysql/sql-bench/test-create
-- Installing: /usr/local/mysql/sql-bench/innotest1b
-- Installing: /usr/local/mysql/sql-bench/test-transactions
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#
```

```
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# ls -lrta /usr/local/mysql/
total 68028
-rw-r--r--.  1 root  root     17987 Sep 18 22:36 COPYING
-rw-r--r--.  1 root  root      2478 Sep 18 22:36 README
-rw-r--r--.  1 root  root     89308 Sep 18 22:36 INSTALL-BINARY
-rw-r--r--.  1 mysql mysql      124 Oct 16 22:56 .bashrc
-rw-r--r--.  1 mysql mysql      176 Oct 16 22:56 .bash_profile
-rw-r--r--.  1 mysql mysql       18 Oct 16 22:56 .bash_logout
drwxr-xr-x. 13 root  root      4096 Feb 28 00:25 ..
-rw-r--r--.  1 root  root  69481257 Feb 28 01:05 boost_1_55_0.tar.gz
drwxr-xr-x.  8 root  root      4096 Feb 28 01:05 boost_1_55_0
drwxr-xr-x.  2 root  root      4096 Feb 28 02:45 docs
drwxr-xr-x.  3 root  root      4096 Feb 28 02:45 include
drwxr-xr-x.  4 root  root      4096 Feb 28 02:45 man
drwxr-xr-x.  3 root  root      4096 Feb 28 02:45 lib
drwxr-xr-x.  2 root  root      4096 Feb 28 02:45 bin
drwxr-xr-x. 10 root  root      4096 Feb 28 02:45 mysql-test
drwxr-xr-x. 28 root  root      4096 Feb 28 02:45 share
drwxr-xr-x.  2 root  root      4096 Feb 28 02:45 support-files
drwx------. 12 mysql mysql     4096 Feb 28 02:45 .
drwxr-xr-x.  4 root  root      4096 Feb 28 02:45 sql-bench
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#
```

**(17) MySQLインストールディレクトリ(/usr/local/mysql)のオーナーとグループをmysqlに変更します。**

```
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# chown -R mysql:mysql /usr/local/mysql
[root@example-MySQL-5-7-5 mysql-5.7.5-m15]#

[root@example-MySQL-5-7-5 mysql-5.7.5-m15]# cd ~
[root@example-MySQL-5-7-5 ~]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQL初期データベース作成)
===

**(18) MySQL初期データベースを新規に作成します。**

/usr/local/mysql/data配下にmysqlスキーマやinformation_schemaスキーマ、InnoDBログファイルやデータファイル等が作成されます。

```
[root@example-MySQL-5-7-5 ~]# /usr/local/mysql/bin/mysqld --version
/usr/local/mysql/bin/mysqld  Ver 5.7.5-m15 for Linux on x86_64 (Source distribution)
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# ls -lrta /usr/local/mysql/data/
total 110608
drwx------. 13 mysql mysql     4096 Feb 28 02:59 ..
-rw-rw----.  1 mysql mysql 50331648 Feb 28 02:59 ib_logfile1
drwx------.  2 mysql mysql     4096 Feb 28 02:59 performance_schema
drwx------.  2 mysql mysql     4096 Feb 28 02:59 mysql
-rw-rw----.  1 mysql mysql 50331648 Feb 28 02:59 ib_logfile0
-rw-rw----.  1 mysql mysql 12582912 Feb 28 02:59 ibdata1
drwxrwx---.  4 mysql mysql     4096 Feb 28 02:59 .
[root@example-MySQL-5-7-5 ~]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQL起動スクリプト設定)
===

**(19) MySQLサーバプロセスの起動スクリプト作成、MySQLが自動起動するよう設定します。**

```
[root@example-MySQL-5-7-5 ~]# cp -p /usr/local/src/mysql-5.7.5-m15/support-files/mysql.server /etc/init.d/mysql
[root@example-MySQL-5-7-5 ~]# chown root:root /etc/init.d/mysql
[root@example-MySQL-5-7-5 ~]# chmod 755 /etc/init.d/mysql
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# chkconfig --add mysql
[root@example-MySQL-5-7-5 ~]# chkconfig mysql on
[root@example-MySQL-5-7-5 ~]# chkconfig --list | grep mysql
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# ps awux | grep -v grep | grep mysql
[root@example-MySQL-5-7-5 ~]#
```

**(20) MySQL起動スクリプトを編集し、MySQLデータベース格納ディレクトリ等を指定します。**

```
[root@example-MySQL-5-7-5 ~]# vi /etc/init.d/mysql
```

```sh:/etc/init.d/mysql
basedir=
datadir=
　↓
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
```

**(21) MySQLデータベース格納ディレクトリ(/usr/local/mysql/data)へのシンボリックリンク/var/lib/mysqlを作成します。**

```
[root@example-MySQL-5-7-5 ~]# rm -rf /var/lib/mysql
[root@example-MySQL-5-7-5 ~]# ls -lrta /var/lib/mysql/
ls: cannot access /var/lib/mysql/: No such file or directory
[root@example-MySQL-5-7-5 ~]#
[root@example-MySQL-5-7-5 ~]# ln -s /usr/local/mysql/data /var/lib/mysql
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# ls -lrta /var/lib/mysql
lrwxrwxrwx. 1 root root 21 Feb 28 03:07 /var/lib/mysql -> /usr/local/mysql/data
[root@example-MySQL-5-7-5 ~]#
```

**(22) MySQL設定ファイルを作成します。**

```
[root@example-MySQL-5-7-5 ~]# cp -p /usr/local/src/mysql-5.7.5-m15/support-files/my-default.cnf /usr/local/mysql/data/my.cnf
[root@example-MySQL-5-7-5 ~]# diff /usr/local/src/mysql-5.7.5-m15/support-files/my-default.cnf /usr/local/mysql/data/my.cnf
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# rm -f /etc/my.cnf
[root@example-MySQL-5-7-5 ~]#
[root@example-MySQL-5-7-5 ~]# ln -s /usr/local/mysql/data/my.cnf /etc/my.cnf
[root@example-MySQL-5-7-5 ~]#
[root@example-MySQL-5-7-5 ~]# ll /etc/my.cnf
lrwxrwxrwx. 1 root root 28 Feb 28 03:17 /etc/my.cnf -> /usr/local/mysql/data/my.cnf
[root@example-MySQL-5-7-5 ~]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQL起動)
===

**(23) MySQLサーバプロセスを起動します。**

```
[root@example-MySQL-5-7-5 ~]# hostname
example-MySQL-5-7-5
[root@example-MySQL-5-7-5 ~]# ps awux | grep -v grep | grep mysql
[root@example-MySQL-5-7-5 ~]#
[root@example-MySQL-5-7-5 ~]# /etc/init.d/mysql start
Starting MySQL.. SUCCESS!
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# ps awux | grep -v grep | grep mysql
root     12601  0.5  0.0 106196  1520 pts/0    S    03:17   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/example-MySQL-5-7-5.pid
mysql    12733 18.0 14.1 1399304 544380 pts/0  Sl   03:17   0:00 /usr/local/mysql/bin/mysqld --defaults-extra-file=/usr/local/mysql/data/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/example-MySQL-5-7-5.err --pid-file=/usr/local/mysql/data/example-MySQL-5-7-5.pid
[root@example-MySQL-5-7-5 ~]#```
```

MySQL 5.7.5-m15のソースインストール手順(MySQL接続テスト)
===

**(24) PATH環境変数にmysqlコマンドへのパスを追加します。**

```
[root@example-MySQL-5-7-5 ~]# cp -p /etc/bashrc /etc/bashrc.ORG
[root@example-MySQL-5-7-5 ~]# diff /etc/bashrc /etc/bashrc.ORG
[root@example-MySQL-5-7-5 ~]#

[root@example-MySQL-5-7-5 ~]# echo "PATH="$PATH":/usr/local/mysql/bin" >> /etc/bashrc
[root@example-MySQL-5-7-5 ~]# diff /etc/bashrc /etc/bashrc.ORG
87d86
< PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@example-MySQL-5-7-5 ~]#
[root@example-MySQL-5-7-5 ~]# su - root
[root@example-MySQL-5-7-5 ~]#
[root@example-MySQL-5-7-5 ~]# which mysql
/usr/local/mysql/bin/mysql
[root@example-MySQL-5-7-5 ~]#
```

**(25) MySQLデータベースのrootユーザの初期パスワードを生成します。**

```
[root@example-MySQL-5-7-5 ~]# /usr/local/mysql/bin/mysql_secure_installation
```

```
Securing the MySQL server deployment.

Connecting to MySQL server using password in '/root/.mysql_secret'

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y　→　★「y」と入力します。

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1　→　★今回の例では「1」と入力します。
Using existing root password.

Estimated strength of the password: 50
Change the root password? (Press y|Y for Yes, any other key for No) : n　→　★「n」と入力します。

→　★Ctrl + Cキーを押下して、コマンドを途中で終了します。

[root@example-MySQL-5-7-5 ~]#
```

**(26) MySQLデータベースへ接続出来るかテストします。**

MySQLのrootユーザの初期パスワードが記載されたファイル/root/.mysql_secretが生成されていますので、MySQLのrootユーザの初期パスワードを確認します。

***(※注) 以下に記載しているパスワードは例示用のサンプルパスワードになります。***

```
[root@example-MySQL-5-7-5 ~]# ll /root/.mysql_secret
-rw-------. 1 root root 78 Feb 28 02:59 /root/.mysql_secret
[root@example-MySQL-5-7-5 ~]#
[root@example-MySQL-5-7-5 ~]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2015-02-28 02:59:00
kStYGNwkz95M
[root@example-MySQL-5-7-5 ~]#
```

・/root/.mysql_secretファイルに記載された初期パスワードを指定して、MySQLのrootユーザでMySQLデータベースへ接続出来るかテストします。

***(※注) 以下は例示用として分かりやすくする為、わざと「mysql -u root -pパスワード文字列」と実行し、パスワード文字列を表示するようにしてmysqlコマンドを実行しています。実際の運用では「mysql -u root -p」と実行し、パスワード文字列は画面上に表示しないようにした方が安全です。***

```
[root@example-MySQL-5-7-5 ~]# mysql -u root -pkStYGNwkz95M
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 31
Server version: 5.7.5-m15 Source distribution

Copyright (c) 2000, 2014, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql> \q
Bye
[root@example-MySQL-5-7-5 ~]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQLインストール後の事後設定)
===

**(27) MySQLデータベースの匿名ユーザ削除等を行います。**

```
[root@example-MySQL-5-7-5 ~]# /usr/local/mysql/bin/mysql_secure_installation
```

```
Securing the MySQL server deployment.

Connecting to MySQL server using password in '/root/.mysql_secret'
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing root password.

Estimated strength of the password: 50
Change the root password? (Press y|Y for Yes, any other key for No) : n　→　★「n」と入力します。

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y　→　★「y」と入力します。匿名ユーザを削除します。
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y　→　★「y」と入力します。今回のサーバはプロダクション環境ではなく、評価用として利用するので、他のサーバからもMySQLデータベースに対するrootユーザ接続を許可します。
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y　→　★「y」と入力します。testデータベースを削除します。
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y　→　★「y」と入力します。
Success.

All done!
[root@example-MySQL-5-7-5 ~]#
```

MySQL 5.7.5-m15のソースインストール手順(MySQLデータベースに新規スキーマやテーブルを作成する)
===

**(28) MySQLデータベースに対して、テスト用のスキーマやテーブルを作成出来るかテストします。**

```
[root@example-MySQL-5-7-5 ~]# mysql -u root -pkStYGNwkz95M
```

```
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.7.5-m15 Source distribution

Copyright (c) 2000, 2014, 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> CREATE DATABASE `example_schema` DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.01 sec)

mysql> show create database example_schema;
+-----------------+--------------------------------------------------------------------------+
| Database        | Create Database                                                          |
+-----------------+--------------------------------------------------------------------------+
| example_schema  | CREATE DATABASE `example_schema` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+-----------------+--------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| example_schema     |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

mysql> use example_schema
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> CREATE TABLE `example_schema`.`example_table`(id int, name varchar(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+--------------------------+
| Tables_in_example_schema |
+--------------------------+
| example_table            |
+--------------------------+
1 row in set (0.00 sec)

mysql>

mysql> show create table `example_schema`.`example_table` \G;
*************************** 1. row ***************************
       Table: example_table
Create Table: CREATE TABLE `example_table` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>
```

**(29) 新規作成したMySQLテーブルに対して、レコードを追加出来るかテストします。**

```
mysql> SELECT * FROM `example_schema`.`example_table`;
Empty set (0.00 sec)

mysql>
mysql> INSERT INTO `example_schema`.`example_table`( id, name ) VALUES( 1, 'test' );
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM `example_schema`.`example_table`;
+------+------+
| id   | name |
+------+------+
|    1 | test |
+------+------+
1 row in set (0.00 sec)

mysql> \q
Bye
[root@example-MySQL-5-7-5 ~]#
```

```
[root@example-MySQL-5-7-5 ~]# mysql -u root -pkStYGNwkz95M
```

```
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.7.5-m15 Source distribution

Copyright (c) 2000, 2014, 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> SELECT * FROM `example_schema`.`example_table`;
+------+------+
| id   | name |
+------+------+
|    1 | test |
+------+------+
1 row in set (0.00 sec)

mysql> INSERT INTO `example_schema`.`example_table`( id, name ) VALUES( 2, 'test' );
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM `example_schema`.`example_table`;
+------+------+
| id   | name |
+------+------+
|    1 | test |
|    2 | test |
+------+------+
2 rows in set (0.00 sec)

mysql> \q
Bye
[root@example-MySQL-5-7-5 ~]#
```

MySQLデータベースに対する新規スキーマやテーブルの作成、レコードを追加出来れば、ひとまずMySQLのインストールは完了です。

***

以上になります。