環境
CentOS6
MySQL 5.1.73
前置き
CentOS6上でMySQLのバージョンを上げる対応を行いましたので備忘録として残します。
MySQLを5.1系から5.7系へ上げるには一度、5.6系へバージョンアップを行うことで、5.7系へバージョンアップすることができます。いきなり5.7系へのバージョンアップは不可能なので段階を踏みます。
ダンプ
# バージョンアップ後にリストアするので
$ mysqldump -u root --all-databases --single-transaction > dump-data.sql
まず5.6にあげる
$ mysql --version # 現在のバージョン確認
$ sudo -s # 権限昇格
$ service mysqld stop # サービスを落とす
$ yum remove mysql* # mysql関係のリポジトリをアンインストールします
# MySQL5.6をインストールします
$ wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
$ yum -y install mysql-community-release-el6-5.noarch.rpm
$ yum-config-manager --disable mysql55-community
$ yum-config-manager --enable mysql56-community
$ yum -y install yum-utils
$ yum install mysql mysql-devel mysql-server mysql-utilities
$ service mysqld start # サービスを起動
$ mysql_upgrade -u root # バージョンアップでテーブルに非互換性が生まれた場合に修復してくれる
$ mysql --version # 5.6系になっている
5.7.33にあげる
$ service mysqld stop # サービスを落とす
$ yum remove mysql* # mysql関係のリポジトリをアンインストールします
$ rpm -e mysql-community-release-el6-5.noarch # 5.6のパッケージをアンインストール
# MySQL5.7をインストールします
$ wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
$ yum -y install mysql57-community-release-el7-11.noarch.rpm
$ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.33-1.el6.x86_64.rpm-$bundle.tar
$ tar -xvf mysql-5.7.33-1.el6.x86_64.rpm-bundle.tar
$ yum localupdate mysql-community-server-5.7.33-1.el6.x86_64.rpm \
mysql-community-client-5.7.33-1.el6.x86_64.rpm \
mysql-community-common-5.7.33-1.el6.x86_64.rpm \
mysql-community-devel-5.7.33-1.el6.x86_64.rpm \
mysql-community-libs-5.7.33-1.el6.x86_64.rpm
$ service mysqld start # サービスを起動
$ mysql_upgrade -u root # バージョンアップでテーブルに非互換性が生まれた場合に修復してくれる
$ service mysqld restart # 念の為サービスをリスタート
$ mysql --version # 5.7.33になっている
リストア
$ mysql -u root < dump-data.sql # データをリストア
$ mysql_upgrade -u root --force # 非互換性の修復
$ service mysqld restart # サービスをリスタート
まとめ
何度か試行錯誤してこの形に行き着きました。