【MySQL】MySQL のデグレード v5.7 => v5.6

■ はじめに

 開発環境は、MySQL v5.7 だが、本番環境の AWS / Aurora を使っている場合、
2017/08/19現在、Aurora は、MySQL v5.6 と強い互換性があるので、
開発環境もv5.6に合わせておきたいってケースってあり得るのかと。

 そういう訳で、MySQL v5.7 から v5.6 へのデグレードを調べてみた。
MySQL 5.7 のインストール は、以下の関連記事を参照のこと。
https://blogs.yahoo.co.jp/dk521123/36283180.html


■ 注意する点

 * バージョン間の仕様や設定が異なるので、互換性を事前に調べておいた方がいい

■ 概要

[1] バックアップを取る
[2] MySQL(v5.7)を停止
[3] MySQL(v5.7)をアンインストール
[4] MySQL(v5.6)をインストール
[5] MySQL(v5.6)の初期設定
[6] MySQL(v5.6)に、[2]のデータをインポート

■ 手順詳細

構築環境

 * OS : CentOS7
 * MySQL(v5.7) : v5.7.19
 * MySQL(v5.6) : v5.6.37

[1] バックアップを取る

https://blogs.yahoo.co.jp/dk521123/36680883.html
# [1-1] 設定ファイルのバックアップ
sudo cp /etc/my.cnf /etc/my.cnf.v57

# [1-2] データのバックアップ

# [1-2-1] まずは、ログインする
mysql -u root -p

# [1-2-2]  データベースを確認
SHOW DATABASES;
# システムに必要な「information_schema」「mysql」「performance_schema」「sys」以外
# のデータベースをバックアップ対象となる

# [1-2-3] ログアウト
exit;

# [1-2-4] 念の為、最悪、元に戻せるように、全データベースのバックアップをとっておく
# mysqldump -u【User Name】 -p -r 【Export File】 --lock-all-tables --all-databases
mysqldump -u root -p -r fullbackup.sql --lock-all-tables --all-databases;

# [1-2-5] データのバックアップ
# mysqldump -u【User Name】 -p -r 【Export File】 --lock-all-tables  --databases【DB Name1】 【DB Name2】 ...
mysqldump -u root -p -r databackup.sql --lock-all-tables --databases sampledb1 sampledb2;
一括でバックアップできるスクリプトについては、以下の関連記事を参照のこと。
https://blogs.yahoo.co.jp/dk521123/37416957.html

[2] MySQL(v5.7)を停止

# [2-1] とりあえず、以下を実行...

# [2-1-1] バージョン確認 
mysql --version
# [2-1-2] インストールされているか
rpm -qa | grep -i mysql
# [2-1-3] 状態を確認
sudo systemctl status mysqld

# [2-2] サービス停止

# [2-2-1] 自動起動停止
sudo systemctl disable mysqld

# [2-2-2] 停止
sudo systemctl stop mysqld

[3] MySQL(v5.7)をアンインストール

https://blogs.yahoo.co.jp/dk521123/36283180.html
# [3-1] アンインストール
sudo yum -y remove mysql*

# [3-2] ファイル削除
sudo rm -rf /var/lib/mysql
sudo rm /var/log/mysqld.log

# [3-3] 最後に削除されているか確認
rpm -qa | grep -i mysql

[4] MySQL(v5.6)をインストール

# [4-1] MySQLリポジトリのURLを以下の参考文献を参考に調べる
#   => 今回は「https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
参考文献
http://www.task-notes.com/entry/20150626/1435287600
Download MySQL Yum Repository
https://dev.mysql.com/downloads/repo/yum/
# [4-2] MySQLyumリポジトリに追加する
sudo yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

# [4-3] MySQLyum リポジトリを追加できたことを確認するために、利用できるリポジトリの一覧を表示
#  => 「mysql57-community/x86_64 MySQL 5.7 Community Server 有効」のように
#      インストールしたレポジトリは、デフォルトでMySQL5.7が有効になっているはず
yum repolist all | grep mysql

# [4-4] MySQL(v5.6)のリポジトリ有効にするために、以下[4-4-1]~[4-4-4]を行う

# [4-4-1] yum の設定を変更するために yum-utils パッケージがインストールされていない場合はインストール
sudo yum -y install yum-utils
# [4-4-2] MySQL(v5.7)のリポジトリを無効にする
sudo yum-config-manager --disable mysql57-community
# [4-4-3] MySQL(v5.6)のリポジトリを有効にする
sudo yum-config-manager --enable mysql56-community
# [4-4-4] MySQL(v5.6)のリポジトリを有効になっていることを確認
yum repolist all | grep mysql

# [4-5] MySQL(v5.6)をインストール
sudo yum -y install mysql mysql-devel mysql-server mysql-utilities

# [4-6] 確認
mysqld --version

sudo rpm -qa | grep mysql

[5] MySQL(v5.6)を初期設定

# [5-1] viなどでファイルを修正する
sudo vi /etc/my.cnf
~~~
[mysqld]
・・・
# Add
character-set-server=utf8
・・・
~~~

# [5-2] MySQL自動起動

# [5-2-1] MySQL自動起動
sudo systemctl enable mysqld
# [5-2-2] enabledで表示されたら自動起動が有効になっている
sudo systemctl is-enabled mysqld

# [5-3] MySQL起動
sudo systemctl start mysqld

sudo systemctl status mysqld

# [5-4] rootの設定

# [5-4-1] ログイン
mysql -u root

# [5-4-2] パスワードを設定する(今回は「password」)
set password for 'root'@'localhost' = password('password');
GRANT ALL ON  *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# [5-4-3] ログアウト
exit;
【任意設定】外部からアクセスするためにファイアウォールをあける
# ファイアウォールが有効か?(「active (running)」なら以下を実行)
systemctl status firewalld

sudo firewall-cmd --add-service=mysql --zone=public --permanent

sudo firewall-cmd --reload

[6] MySQL(v5.6)に、[2]のデータをインポート

# データをインポート
mysql -u root -p < databackup.sql

# データを確認


関連記事

MySQL 5.7 のインストール ~ Linux / CentOS 編 ~

https://blogs.yahoo.co.jp/dk521123/36283180.html

データのエクスポート / バックアップを行うには... ~ mysqldump ~

https://blogs.yahoo.co.jp/dk521123/36680883.html