この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
MySQL5.5 からのバージョンアップ
MySQL はバージョンアップする度に機能がアップしています。特に MySQL5.6 からは既存のテーブルに「ALTER TABLE」したときにテーブルロックが回避できたり、サブクエリが数百倍以上の性能アップをしていたりと大きな差があります。
今回は、MySQL5.5 から MySQL5.7 への移行を検証してみたので、手順をまとめます。
※実行環境は AWS で、CentOS や Amazon Linux で検証しています。
MySQL のバージョンアップ手順
yum コマンドで MySQL のモジュールを全てアンインストールした上で、MySQL5.7 の必要なモジュールをインストールしています。mysqldump コマンドなどでデータのバックアップを行っていませんが、データ自体はアンインストールの対象外である「ibdata1」に保存されていたためです。
※実際の環境で実行するときは念のため、バックアップ等をお取りください。
実行するコマンド
yum install mysql57 mysql57-devel mysql57-server
mysql_upgrade -u root -p
サンプルコマンドの実行例
まずは MySQL のバージョンを確認しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@hostname]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.5.62-log MySQL Community Server (GPL) Copyright (c) 2000, 2018, 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 の関連するモジュールを一括でアンインストールします。
1 2 3 4 5 6 7 8 |
[root@hostname]# yum remove mysql* Loaded plugins: priorities, update-motd, upgrade-helper Resolving Dependencies --> Running transaction check ---> Package mysql-config.x86_64 0:5.5.62-1.23.amzn1 will be erased ---> Package mysql55-libs.x86_64 0:5.5.60-1.21.amzn1 will be erased --> Processing Dependency: libmysqlclient.so.18()(64bit) for package: perl-DBD-MySQL55-4.023-5.23.amzn1.x86_64 (省略) |
使用する MySQL のモジュールをインストールします。
1 2 3 4 5 6 |
[root@hostname]# yum install mysql57 mysql57-devel mysql57-server Loaded plugins: priorities, update-motd, upgrade-helper Resolving Dependencies --> Running transaction check ---> Package mysql57.x86_64 0:5.7.24-1.10.amzn1 will be installed (省略) |
MySQL がバージョンアップされていることを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@hostname]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 5.7.24 MySQL Community Server (GPL) Copyright (c) 2000, 2018, 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_upgrade を実行する
MySQL のバージョンを変更したときには、mysql_upgrade コマンドを実行する必要があります。
「mysql_upgrade」を実行しなくても INSERT や SELECT、UPDATE などの主要なコマンドを実行できますが、ALTER TABLE など既存のデータベースへの変更命令を一切受け付けなくなりますので、必ず「mysql_upgrade」コマンドを実行しましょう。
[MySQL]mysql_upgrade コマンドを実行する
https://www.t3a.jp/blog/infrastructure/mysql-upgrade/
さいごに
いかがでしたでしょうか?
MySQL はバージョンアップとともに性能の向上も大きいので新しめのバージョンを使うことが多いです。実際に作業手順をまとめてみると MySQL のバージョンアップは簡単に行うことができますので、タイミングが合えばバージョンアップを検討しても良いかもしれません。
ただ手順の確認中に誤って2回ほど環境を壊していまいました(涙)
みなさんは実行時には必ずバックアップと検証してくださいね。