こんばんわ。最近電車通勤になって正直つらいなぁーと思っている僕です。
今日はinnodbが壊れてmysqlが起動しない的なマジどんまいな場合の対処法をご紹介します。
1. まずはセーフモードで起動する
$ mysqld_safe --user=root &
まあこれで起動しないなんてことはよくあります。
2. innodb_force_recoveryでなんとかする
my.cnfにinnodb_force_recoveryの設定を書きます。
$ vim /etc/my.cnf [mysqld] innodb_force_recovery=1
レベルが1〜6まであるので、徐々に数値を上げていきましょう。
起動出来たら速攻でmysqldumpでデータのバックアップをとりましょう。
$ mysqldump -u root -p dbname > backup.sql
ってな感じで復旧してました。
データの破損とかあるかもしれないので、dumpした後のデータは要チェックです。
まあバックアップはしっかりとれよってはなしですね。
そーいえばmysql5.6から遅延スレーブできますね。
mysql> CHANGE MASTER TO MASTER_DELAY=3600
これで1時間遅延するので、あっていうときになんとか出来そうですね。
参考
14.2.7.6. Starting InnoDB on a Corrupted Database
13.4.2.1. CHANGE MASTER TO Syntax