アーカイブ

‘Linux’ カテゴリーのアーカイブ

yumでMySQL5.5.44からMySQL5.7にアップデートする その1

2017 年 6 月 17 日 Comments off

先日の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へバージョンアップします

*****************************************************************************

ブログランキング・にほんブログ村へ
にほんブログ村

PVアクセスランキング にほんブログ村

カテゴリー: Linux, mysql タグ: ,