mysqlデータディレクトリを丸っとコピーしてレプリカのコピーを作ってmysqlを再起動したら、エラーログに吐かれた内容。
InnoDB: Error: log file ./ib_logfile0 is of different size 0 1073741824 bytes InnoDB: than specified in the .cnf file 0 134217728 bytes! 140612 12:35:27 [ERROR] Plugin 'InnoDB' init function returned error. 140612 12:35:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
元々のサーバに書かれていたmy.cnfと現在のmy.cnfが異なっているため、innodbが無効になって立ち上がった様子。このサーバは5.1系だけど、5.5系だとそもそも起動に失敗したはず(未確認)
対処方は簡単でinnodb_log_file_sizeを元のサーバと同じサイズにして、mysqlインスタンスを再起動してあげる。
どうしてもinnodb_log_file_sizeを変えたいときは、下記の手順を取ってあげれば良いはず。
シャットダウン時にinnodb logをフラッシュしてあげる
SET GLOBAL innodb_fast_shutdown=0;
mysqldを止める
/etc/init.d/mysql stop
dataディレクトリをバックアップ
cp -pr /var/lib/mysql /var/lib/mysql.backup.$(date +'%Y%m%d')
my.cnfのinnodb_log_file_sizeを変更する
innodb logを削除する
rm /var/lib/mysql/ib_logfile*
mysqldを再開
/etc/init.d/mysql start
ログを確認してエラーってないことを確認する。(エラーログの場所は設定次第)
lv /var/lib/mysql/$(hostname).err
innodb logが何者かってのは、昔メモ書いたはずなので、明日掘り起こす。