MySQL5.5から、5.6にバージョンアップ
今更だけど、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
したらなおりました