CentOS6.xでMySQL5.6⇒5.7にアップグレードする

MySQL5.6⇒5.7へのアップグレード手順です。
うわさでは5.7は3倍高速らしい(笑)

まずは、MySQL5.7用のyumリポジトリの登録ですが、5.6用を削除してから登録します。

# yum remove mysql-community-release.noarch
# yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

これで、MySQL5.7がインストール可能になります。

# yum list | grep "^mysql-.*server"
mysql-community-server.x86_64               5.6.29-2.el6                 @mysql56-community
mysql-community-server.x86_64               5.7.11-1.el6                 mysql57-community
mysql-server.x86_64                         5.1.73-5.el6_6               base

アップグレードの前にMySQLを使用しているサービスを停止させてください。
例)

# service redmine stop

次にMySQLを停止します。

# service mysqld stop

停止したらyumでupdateします。

# yum update mysql-community-server mysql-community-devel
# mysql --version
mysql  Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using  EditLine wrapper

MySQL5.7からパスワードの有効期限がデフォルトだと360日らしいので、無期限に設定します。

# vim /etc/my.cnf
[mysqld]
default_password_lifetime = 0

アップグレードが完了したら、MySQLを起動します。

# service mysqld start

これで完了です!とはいかず、もう少し続きます。
なぜなら起動は成功していますが、ログ(/var/log/mysqld.log)を見るとERRORの文字が。。。
これはモジュール自体はアップグレードされましたが、DBの中身が古いままだからです。
なので、下記コマンドでDBのアップグレードを行います。

# mysql_upgrade -u root -p

MySQLを再起動してみます。

# service mysqld restart

これで、ERRORが出なくなっているはずです。
これで完了です!

と思いきや(笑)、Redmineを起動しようとしたところエラーが。。。
mysql2.soが見つからないという内容がエラーログに出力されていました。
調べたところ、mysql2のGEMパッケージを再インストールすると直るらしいとの情報が。
早速試したところ、

# cd /var/lib/redmine
# gem uninstall mysql2
# bundle install --without development test

直りました!!

ネットで情報を調べた限りでは、3倍とはいかないものの1.5倍くらいは早くなっているらしい。
ただし!!メモリの使用量は増えてました!

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql     1425  0.0 10.3 917060 105412 ?       Sl   Mar21   1:12 /usr/sbin/mysqld  #MySQL5.6
mysql     4573  0.1 17.6 2054928 179968 pts/0  Sl   23:20   0:01 /usr/sbin/mysqld  #MySQL5.7

ちなみに、未チューニング状態なので、チューニングしたら違うのかもしれません。