MySQL5.5から、5.6にバージョンアップ

f:id:isopan:20150305163250j:plain

今更だけど、MySQL5.5で動いていたサービスのDBがあったので、DBをアップデートした。

その時のメモ

MySQLを停止

# service mysqld stop
mysqld を停止中: [OK]

 

不要パッケージの削除

# rpm -qa | grep mysql
mysql-server-5.5.27-1.el6.x86_64
mysql-5.5.27-1.el6.x86_64
mysql-devel-5.5.27-1.el6.x86_64
mysql-libs-5.5.27-1.el6.x86_64

# yum remove mysql-server mysql mysql-devel mysql-libs

 

MySQL5.6のインストール

# rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm を取得中
準備中... ########################################### [100%]
1:mysql-community-release########################################### [100%]

# yum install mysql mysql-server enablerepo=mysql56-community

 

コンフィグの書き直し

5.5で使えていたものが使えなくなったり、逆に必要そうなものを追加

* 「sql_mode」を変更。5.6でデフォルトで設定してある
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

5.5と同じ動作にするなら、空にする
sql_mode=

SQLモードに関してのマニュアル

MySQL :: MySQL 5.6 Reference Manual :: 5.1.7 Server SQL Modes

 

* 使えなくなった設定を削除(自分が設定していて使えなくなったものは以下の3つ)
使えなくなったものを設定している場合は、起動時にエラーログにでる。
thread_cache
table_cache
innodb_additional_mem_pool_size

 

ローカルIPが変わったのでサーバーIDを振り直す

# hostname -I | sed -e 's/ /n/' | grep -v '^$' | tail -1 | awk -F. '{print $3 * 256 + $4}'

出力された値をserver_idに設定

MySQL起動

# service mysqld start

 

ログをみると

[ERROR]

Column count of mysql.slow_log is wrong. Expected 12, found 11. Created with MySQL 50525, now running 50623. Please use mysql_upgrade

to fix this error.

 

こんなエラーがでたので、

 

# mysql_upgrade

 

したらなおりました