CentOS7にMysql5.6インストール(バージョン指定してインストールしたい場合)

テスト環境構築などで、最新でないバージョンのmysqlをインストールしたい場合の手順。
今回はmysql5.7ではなく、5.6を指定してインストールする。

環境：
CentOS7

#事前準備(mariaDBやインストール済みmysqlの削除)
CentOS7だと、mariaDB(MySQL互換のDB)がデフォルトでインストールされている場合がある。
これが残ったままだと、これからインストールするMySQLと競合するので、まずは削除しておく。

```
# rpm -qa | grep maria     <- mariaDBが存在するか確認
# yum remove mariadb-libs  <- 本体削除
# rm -rf /var/lib/mysql/   <- データ削除
```

また、別のバージョンのmysqlが既にインストールされている場合も、競合を避けるために削除しておく。
(ただし**DBにデータがある場合は要注意！**　丸ごと消えるので、必要なデータは退避しておくこと！)

```
# yum remove mysql-server mysql-devel mysql
# rm -rf /var/lib/mysql/
```

#MysqlのYumリポジトリを追加

Mysql公式のYumリポジトリをインストールする。
最新版はMysql公式[https://dev.mysql.com/downloads/repo/yum/](https://dev.mysql.com/downloads/repo/yum/)で確認できる。
(以下はmysql57となっているが、5.5や5.6も含まれているので問題ない)

```
# yum localinstall http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
```

インストールできたか確認するには

```
# yum repolist all | grep mysql

mysql-connectors-community/x86_64 MySQL Connectors Community      有効:
mysql-connectors-community-source MySQL Connectors Community - So 無効
mysql-tools-community/x86_64      MySQL Tools Community           有効:
mysql-tools-community-source      MySQL Tools Community - Source  無効
mysql55-community/x86_64          MySQL 5.5 Community Server      無効
mysql55-community-source          MySQL 5.5 Community Server - So 無効
mysql56-community/x86_64          MySQL 5.6 Community Server      無効　 <-ここ注目
mysql56-community-source          MySQL 5.6 Community Server - So 無効
mysql57-community/x86_64          MySQL 5.7 Community Server      有効:　<-ここ注目
mysql57-community-source          MySQL 5.7 Community Server - So 無効
```
(環境によっては有効が`enabled`、無効が`disabled`と表示される)
上記の例では、5.7が有効、5.6が無効になっている。
このままインストールすると、有効になっている5.7がインストールされてしまうので、有効無効の切り替えをする。
この切り替えをするためにはyumの設定変更用のyum-utilsパッケージが必要なので、インストールされていない場合はインストールする。

```
# yum list installed | grep yum-utils                 <-yum-utilsがインストールされているか確認
# yum -y install yum-utils                            <-入ってなければyum-utilsをインストールする

# yum-config-manager --disable mysql57-community      <-5.7を無効に設定
# yum-config-manager --enable mysql56-community       <-5.6を有効に設定
```

設定ができているか再度確認。

```
# yum repolist all | grep mysql

mysql-connectors-community/x86_64  MySQL Connectors Community       有効:    
mysql-connectors-community-source  MySQL Connectors Community - Sou 無効
mysql-tools-community/x86_64       MySQL Tools Community            有効:     
mysql-tools-community-source       MySQL Tools Community - Source   無効
mysql55-community/x86_64           MySQL 5.5 Community Server       無効
mysql55-community-source           MySQL 5.5 Community Server - Sou 無効
mysql56-community/x86_64           MySQL 5.6 Community Server       有効:    
mysql56-community-source           MySQL 5.6 Community Server - Sou 無効
mysql57-community/x86_64           MySQL 5.7 Community Server       無効
mysql57-community-source           MySQL 5.7 Community Server - Sou 無効
```

5.6が有効になっていればOK。

#Mysqlインストール

MySQL公式リポジトリにある、mysql-community-serverパッケージをインストールする。
mysql-community-serverパッケージの詳細を確認する。

```
# yum info mysql-community-server

…(略)…
名前                : mysql-community-server
アーキテクチャー    : x86_64
バージョン          : 5.6.39
リリース            : 2.el6
容量                : 242 M
リポジトリー        : installed
提供元リポジトリー  : mysql56-community
要約                : A very fast and reliable SQL database server
URL                 : http://www.mysql.com/
ライセンス          : Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Under GPLv2 license as shown in the Description field.
説明                : 
…(略)…
```

ちゃんと5.6になっているのを確認したらインストール。

```
# yum -y install mysql-community-server
```

インストールされたらバージョンを確認。

```
# mysqld --version
mysqld  Ver 5.6.39 for Linux on x86_64 (MySQL Community Server (GPL))
```
これで無事インストール完了。

###yumインストールでエラーになったら
たまにあるので。
yumインストールでエラー([Errno 256] No more mirrors to try)
https://qiita.com/miqpim/items/64e9e002ec35e26a9b1c

#Mysqlの起動/停止/自動起動設定

CentOS7の場合は

```
# systemctl start mysqld   <--起動
# systemctl stop mysqld    <--停止
# systemctl status mysqld  <--ステータス確認
# systemctl restart mysqld <--再起動
```

サーバの起動時に自動起動するようにするには

```
# systemctl enable mysqld   <--自動起動 ON
# systemctl disble mysqld   <--自動起動 OFF
```

自動起動になっているか確認するには

```
# systemctl is-enabled mysqld

mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld --level=5
enabled
```

enabledになっていれば自動起動 ONに設定されている。

ちなみに`chkconfig`でやる場合は

```
# chkconfig mysqld on     <--自動起動 ON
# chkconfig mysqld off    <--自動起動 OFF

# chkconfig --list mysqld   <--自動起動設定の確認

mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
```
chkconfigで確認する場合は、2～5がonになっていれば自動起動 ONに設定されている。
全部offなら自動起動 OFFの状態。