死にかけのMySQLのデータベース (InnoDB) からデータを救う

リカバリと謳いつつ、打ち所が悪いと破滅するおそれがある諸刃の剣。

innodb_force_recovery を 0 を超える値に設定するのは、緊急の状況で InnoDB を起動し、テーブルをダンプできるようにする場合だけにしてください。それを行う前に、データベースの再作成が必要になった場合に備えて、データベースのバックアップコピーがあることを確認してください。4 以上の値を指定すると、データファイルが永続的に破損する場合があります。本番サーバーインスタンス上で 4 以上の innodb_force_recovery 設定を使用するのは、使用するデータベースの個別の物理コピーでその設定を正常にテストしたあとだけにしてください。InnoDB のリカバリを強制的に実行する場合は、常に innodb_force_recovery=1 から始め、必要がある場合にのみこの値を 1 ずつ増やすようにしてください。

# vim /etc/my.conf
---
[mysqld]
innodb_force_recovery = 2
---

参考

MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.19.2 InnoDB のリカバリの強制的な実行