■ はじめに
開発環境は、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] MySQLをyumでリポジトリに追加する sudo yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # [4-3] MySQL の yum リポジトリを追加できたことを確認するために、利用できるリポジトリの一覧を表示 # => 「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
参考文献
MySQL(v5.6)のインストール
http://blog.ybbo.net/2016/12/18/install-mysql5-6-by-yum-to-centos7/https://weblabo.oscasierra.net/installing-mysql56-centos7-yum/