yumでMySQL5.5.44からMySQL5.7にアップデートする その1
先日のMySQLTunerをインストールしてMySQLチューニングの件でmysqlのバージョンが古いためにセキュリティリスクがあるようなログが出たため
以前(yumでMySQL5.1をMySQL5.5にアップデートする)に行った要領でmysqlのバージョンを5.5.44 → 最新バージョンである5.7まで一気にアップデートしてみたいと思います。
まず、現在のバージョンの確認
[root@www16071ue conf]# mysql --version mysql Ver 14.14 Distrib 5.5.44, for Linux (x86_64) using readline 5.1
5.544となってます。では、どのバージョンをインストールできるかを調べてみます。
[root@www16071ue conf]# yum info mysql --enablerepo=remi --disablerepo=updates,base,extras 読み込んだプラグイン:fastestmirror, priorities, security Loading mirror speeds from cached hostfile * remi: mirrors.mediatemple.net remi | 2.9 kB 00:00 remi/primary_db | 1.8 MB 00:01 インストール済みパッケージ 名前 : mysql アーキテクチャ : x86_64 バージョン : 5.5.44 リリース : 1.el6.remi 容量 : 29 M リポジトリー : installed 提供元リポジトリー : remi 要約 : MySQL client programs and shared libraries URL : http://www.mysql.com ライセンス : GPLv2 with exceptions and LGPLv2 and BSD 説明 : MySQL is a multi-user, multi-threaded SQL database server. : MySQL is a client/server implementation consisting of a : server daemon (mysqld) and many different client programs : and libraries. The base package contains the standard : MySQL client programs and generic MySQL files. 利用可能なパッケージ 名前 : mysql アーキテクチャ : x86_64 バージョン : 5.5.56 リリース : 1.el6.remi 容量 : 5.7 M リポジトリー : remi 要約 : MySQL client programs and shared libraries URL : http://www.mysql.com ライセンス : GPLv2 with exceptions and LGPLv2 and BSD 説明 : MySQL is a multi-user, multi-threaded SQL database server. : MySQL is a client/server implementation consisting of a : server daemon (mysqld) and many different client programs : and libraries. The base package contains the standard : MySQL client programs and generic MySQL files.
5.5.56にupdateできるようです。
このままのリポジトリだと5.5.56までしかあがらないので新たにmysqlのリポジトリをインストールします。
手順については、こちらを参照 -----> A Quick Guide to Using the MySQL Yum Repository
ここに http://repo.mysql.com/yum/ mysqlのリポジトリがおいてあるので最新のバージョンを確認してインストール
[root@www16071ue etc]# yum -y install http://repo.mysql.com/yum/mysql-5.7-community/el/6/x86_64/mysql57-community-release-el6-10.noarch.rpm 読み込んだプラグイン:fastestmirror, priorities, security インストール処理の設定をしています mysql57-community-release-el6-10.noarch.rpm | 25 kB 00:00 /var/tmp/yum-root-1uybn5/mysql57-community-release-el6-10.noarch.rpm を調べています: mysql57-community-release-el6-10.noarch /var/tmp/yum-root-1uybn5/mysql57-community-release-el6-10.noarch.rpm をインストール済みとして設定しています Loading mirror speeds from cached hostfile * base: ftp.nara.wide.ad.jp * extras: ftp.nara.wide.ad.jp * updates: ftp.nara.wide.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package mysql57-community-release.noarch 0:el6-10 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: mysql57-community-release noarch el6-10 /mysql57-community-release-el6-10.noarch 30 k トランザクションの要約 ================================================================================ インストール 1 パッケージ 合計容量: 30 k インストール済み容量: 30 k パッケージをダウンロードしています: rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています 警告: RPMDB は yum 以外で変更されました。 インストールしています : mysql57-community-rele [################### ] 1/1 インストールしています : mysql57-community-rele [#################### ] 1/1 インストールしています : mysql57-community-rele [##################### ] 1/1 インストールしています : mysql57-community-release-el6-10.noarch 1/1 Verifying : mysql57-community-release-el6-10.noarch 1/1 インストール: mysql57-community-release.noarch 0:el6-10 完了しました!
これでリポジトリをインストールしたので使えるようになりました。
[root@www16071ue etc]# ls -la /etc/yum.repos.d 合計 88 drwxr-xr-x. 2 root root 4096 6月 16 21:32 2017 . drwxr-xr-x. 88 root root 4096 6月 16 12:46 2017 .. -rw-r--r-- 1 root root 1958 10月 11 04:01 2014 CentOS-Base.repo -rw-r--r-- 1 root root 1991 10月 23 20:41 2014 CentOS-Base.repo.rpmnew -rw-r--r-- 1 root root 647 3月 28 19:25 2017 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 630 3月 28 19:25 2017 CentOS-Media.repo -rw-r--r-- 1 root root 7989 3月 28 19:25 2017 CentOS-Vault.repo -rw-r--r-- 1 root root 289 3月 28 19:25 2017 CentOS-fasttrack.repo -rw-r--r--. 1 root root 1056 11月 5 12:52 2012 epel-testing.repo -rw-r--r-- 1 root root 957 10月 11 03:55 2014 epel.repo -rw-r--r-- 1 root root 739 3月 20 23:24 2013 mirrors-rpmforge -rw-r--r-- 1 root root 717 3月 20 23:24 2013 mirrors-rpmforge-extras -rw-r--r-- 1 root root 728 3月 20 23:24 2013 mirrors-rpmforge-testing -rw-r--r-- 1 root root 1663 4月 5 20:18 2017 mysql-community-source.repo -rw-r--r-- 1 root root 1625 4月 5 20:18 2017 mysql-community.repo -rw-r--r-- 1 root root 457 2月 10 22:27 2017 remi-php54.repo -rw-r--r-- 1 root root 2609 2月 10 22:27 2017 remi.repo -rw-r--r-- 1 root root 1142 6月 24 12:22 2015 rpmforge.repo
mysql-communityのrepoを確認できます。
とりあえずここでデータベースのバックアップを行います。
バックアップが終了したら、一応mysql-community.repoのmysqlバージョンの確認します。
[root@www16071ue yum.repos.d]# yum info mysql-community-server 読み込んだプラグイン:fastestmirror, priorities, security Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp mysql-tools-community | 2.5 kB 00:00 mysql-tools-community/primary_db | 35 kB 00:00 mysql57-community | 2.5 kB 00:00 mysql57-community/primary_db | 112 kB 00:00 利用可能なパッケージ 名前 : mysql-community-server アーキテクチャ : x86_64 バージョン : 5.7.18 リリース : 1.el6 容量 : 152 M リポジトリー : mysql57-community 要約 : A very fast and reliable SQL database server ~略~
異常なくmysql5.7になりそうです。
ここで一度休憩してデータベースなのでいつアップデートしようかと調べてみると
こちらの記述で5.5—>5.6—>5.7とアップデートが必要そうです。
https://dev.mysql.com/doc/refman/5.7/en/upgrading.html#upgrade-methods
上記ページ中段くらいの記述
Upgrading more than one release level is supported, but only if you upgrade one release level at a time. For example, if you currently are running MySQL 5.5 and wish to upgrade to a newer series, upgrade to MySQL 5.6 first before upgrading to MySQL 5.7, and so forth. For information on upgrading to MySQL 5.6 see the MySQL 5.6 Reference Manual.
たとえば、現在MySQL 5.5を稼働していて、新しいシリーズにアップグレードしたい場合は、MySQL 5.6にアップグレードしてからMySQL 5.7にアップグレードしてください。
とのことです。
先ほどインストールしたリポジトリを確認すると
[root@www16071ue ~]# cd /etc/yum.repos.d/ [root@www16071ue yum.repos.d]# ls CentOS-Base.repo epel.repo remi-php70.repo CentOS-Base.repo.rpmnew mirrors-rpmforge remi-php71.repo CentOS-Debuginfo.repo mirrors-rpmforge-extras remi-safe.repo CentOS-Media.repo mirrors-rpmforge-testing remi.repo CentOS-Vault.repo mysql-community-source.repo rpmforge.repo CentOS-fasttrack.repo mysql-community.repo epel-testing.repo remi-php54.repo [root@www16071ue yum.repos.d]# cat mysql-community.repo [mysql-connectors-community] name=MySQL Connectors Community baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-community] name=MySQL Tools Community baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.5 [mysql55-community] name=MySQL 5.5 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-preview] name=MySQL Tools Preview baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-cluster-7.5-community] name=MySQL Cluster 7.5 Community baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql56-community]の項目もあるのでこのリポジトリからバージョン5.6をインストールできそうです。 それと設定ファイルをバックアップしておきます
[root@www16071ue yum.repos.d]# cp -pr /etc/my.cnf /etc/my.cnf.20170617
これで準備OKとなりました。
しつこいようですが、もう一度リストを確認
[root@www16071ue yum.repos.d]# yum list --enablerepo=mysql56-community --disablerepo=updates,base,extras | grep mysql compat-mysql51.x86_64 5.1.54-1.el6.remi @remi mysql.x86_64 5.5.44-1.el6.remi @remi mysql-devel.x86_64 5.5.44-1.el6.remi @remi mysql-libs.x86_64 5.5.44-1.el6.remi @remi mysql-server.x86_64 5.5.44-1.el6.remi @remi mysql57-community-release.noarch el6-10 @/mysql57-community-release-el6-10.noarch php-mysqlnd.x86_64 5.5.19-2.el6.remi @remi-php55 mysql-community-bench.x86_64 5.6.36-2.el6 mysql56-community mysql-community-client.i686 5.6.36-2.el6 mysql56-community mysql-community-client.x86_64 5.6.36-2.el6 mysql56-community mysql-community-common.i686 5.6.36-2.el6 mysql56-community mysql-community-common.x86_64 5.6.36-2.el6 mysql56-community mysql-community-devel.i686 5.6.36-2.el6 mysql56-community mysql-community-devel.x86_64 5.6.36-2.el6 mysql56-community mysql-community-embedded.i686 5.6.36-2.el6 mysql56-community mysql-community-embedded.x86_64 5.6.36-2.el6 mysql56-community mysql-community-embedded-devel.i686 5.6.36-2.el6 mysql56-community ~省略~
それでは、インストール
[root@www16071ue yum.repos.d]# yum update mysql --enablerepo=mysql56-community --disablerepo=updates,base,extras 読み込んだプラグイン:fastestmirror, priorities, security 更新処理の設定をしています Loading mirror speeds from cached hostfile 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package mysql.x86_64 0:5.5.44-1.el6.remi will be 不要 --> 依存性の処理をしています: real-mysql(x86-64) = 5.5.44-1.el6.remi のパッケージ: mysql-server-5.5.44-1.el6.remi.x86_64 --> 依存性の処理をしています: real-mysql(x86-64) = 5.5.44-1.el6.remi のパッケージ: mysql-devel-5.5.44-1.el6.remi.x86_64 ---> Package mysql-community-client.x86_64 0:5.6.36-2.el6 will be obsoleting --> 依存性の処理をしています: mysql-community-libs(x86-64) >= 5.6.10 のパッケージ: mysql-community-client-5.6.36-2.el6.x86_64 --> トランザクションの確認を実行しています。 ---> Package mysql-community-devel.x86_64 0:5.6.36-2.el6 will be obsoleting ---> Package mysql-community-libs.x86_64 0:5.6.36-2.el6 will be obsoleting --> 依存性の処理をしています: mysql-community-common(x86-64) >= 5.6.10 のパッケージ: mysql-community-libs-5.6.36-2.el6.x86_64 ---> Package mysql-community-server.x86_64 0:5.6.36-2.el6 will be obsoleting ---> Package mysql-devel.x86_64 0:5.5.44-1.el6.remi will be 不要 ---> Package mysql-libs.x86_64 0:5.5.44-1.el6.remi will be 不要 ---> Package mysql-server.x86_64 0:5.5.44-1.el6.remi will be 不要 --> トランザクションの確認を実行しています。 ---> Package mysql-community-common.x86_64 0:5.6.36-2.el6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ========================================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ========================================================================================================================================== インストールしています: mysql-community-client x86_64 5.6.36-2.el6 mysql56-community 18 M 置き換えています mysql.x86_64 5.5.44-1.el6.remi mysql-community-devel x86_64 5.6.36-2.el6 mysql56-community 3.3 M 置き換えています mysql-devel.x86_64 5.5.44-1.el6.remi mysql-community-libs x86_64 5.6.36-2.el6 mysql56-community 1.9 M 置き換えています mysql-libs.x86_64 5.5.44-1.el6.remi mysql-community-server x86_64 5.6.36-2.el6 mysql56-community 55 M 置き換えています mysql-server.x86_64 5.5.44-1.el6.remi 依存性関連でのインストールをします。: mysql-community-common x86_64 5.6.36-2.el6 mysql56-community 308 k トランザクションの要約 ========================================================================================================================================== インストール 5 パッケージ 総ダウンロード容量: 78 M これでいいですか? [y/N]y パッケージをダウンロードしています: (1/5): mysql-community-client-5.6.36-2.el6.x86_64.rpm | 18 MB 00:01 (2/5): mysql-community-common-5.6.36-2.el6.x86_64.rpm | 308 kB 00:00 (3/5): mysql-community-devel-5.6.36-2.el6.x86_64.rpm | 3.3 MB 00:00 (4/5): mysql-community-libs-5.6.36-2.el6.x86_64.rpm | 1.9 MB 00:00 (5/5): mysql-community-server-5.6.36-2.el6.x86_64.rpm | 55 MB 00:04 ------------------------------------------------------------------------------------------------------------------------------------------ 合計 11 MB/s | 78 MB 00:06 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : mysql-community-common-5.6.36-2.el6.x86_64 1/9 インストールしています : mysql-community-libs-5.6.36-2.el6.x86_64 2/9 インストールしています : mysql-community-client-5.6.36-2.el6.x86_64 3/9 インストールしています : mysql-community-server-5.6.36-2.el6.x86_64 4/9 warning: /etc/my.cnf created as /etc/my.cnf.rpmnew インストールしています : mysql-community-devel-5.6.36-2.el6.x86_64 5/9 削除中 : mysql-devel-5.5.44-1.el6.remi.x86_64 6/9 削除中 : mysql-server-5.5.44-1.el6.remi.x86_64 7/9 warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave warning: /etc/logrotate.d/mysqld saved as /etc/logrotate.d/mysqld.rpmsave 削除中 : mysql-5.5.44-1.el6.remi.x86_64 8/9 削除中 : mysql-libs-5.5.44-1.el6.remi.x86_64 9/9 Verifying : mysql-community-common-5.6.36-2.el6.x86_64 1/9 Verifying : mysql-community-server-5.6.36-2.el6.x86_64 2/9 Verifying : mysql-community-libs-5.6.36-2.el6.x86_64 3/9 Verifying : mysql-community-devel-5.6.36-2.el6.x86_64 4/9 Verifying : mysql-community-client-5.6.36-2.el6.x86_64 5/9 Verifying : mysql-devel-5.5.44-1.el6.remi.x86_64 6/9 Verifying : mysql-server-5.5.44-1.el6.remi.x86_64 7/9 Verifying : mysql-5.5.44-1.el6.remi.x86_64 8/9 Verifying : mysql-libs-5.5.44-1.el6.remi.x86_64 9/9 インストール: mysql-community-client.x86_64 0:5.6.36-2.el6 mysql-community-devel.x86_64 0:5.6.36-2.el6 mysql-community-libs.x86_64 0:5.6.36-2.el6 mysql-community-server.x86_64 0:5.6.36-2.el6 依存性関連をインストールしました: mysql-community-common.x86_64 0:5.6.36-2.el6 置換: mysql.x86_64 0:5.5.44-1.el6.remi mysql-devel.x86_64 0:5.5.44-1.el6.remi mysql-libs.x86_64 0:5.5.44-1.el6.remi mysql-server.x86_64 0:5.5.44-1.el6.remi 完了しました!
ここでmysqldの再起動
root@www16071ue yum.repos.d]# /etc/init.d/mysqld restart mysqld を停止中: [ OK ] mysqld を起動中: [ OK ]
前回同様にmysqlのテーブルなどをアップグレードするためmysql_upgradeコマンドを発行
[root@www16071ue log]# mysql_upgrade -u root -p Enter password: Looking for 'mysql' as: mysql Looking for 'mysqlcheck' as: mysqlcheck Running 'mysqlcheck with default connection arguments Warning: Using a password on the command line interface can be insecure. Running 'mysqlcheck with default connection arguments Warning: Using a password on the command line interface can be insecure. mysql.columns_priv OK mysql.db OK mysql.event OK mysql.func OK ~省略~
/var/log/mysqlのなかにあるerror.logを確認してupgradeコマンド発行後の数時間でテーブルなどエラーがなければアップデート完了です。
[root@www16071ue mysql]# mysql --version mysql Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using EditLine wrapper
後日、mysql05.6から5.7へバージョンアップします
*****************************************************************************