MAMPのMySQLのinnodbが壊れてしまってMySQLが起動しない時

Facebooktwitter

MAMPのMySQLに2.5Gぐらいのデータをインポートしながら他の作業をしていたら、突然スクリーンが真っ黒になって、Macが再起動してしまいました。
Macが立ち上がった後MAMPを起動したらMySQLがスタートアップでこけて起動しなくなっています。

MySQLのログをみたら、innodbが破損して起動できないようなことを英語でゴニョゴニョ言っている。
早速Googleで調べて修復しようとしたが、どれもうまくいかず。
-my.cnfを作ってそれに
[mysqld]
innodb_force_recovery = 1

こう言う設定を入れて立ち上げるとかあったけど、これは壊れたデータを救出する方法で、結構面倒くさそうです。

手っ取り早くMySQLを起動できるようにして、インポートに失敗したデータだけ入れたいので、とにかくMySQLが起動できるようにしてみました。
注:このやり方は壊れたデータのリカバリはできません。あくまでバックアップのダンプが有ったときに有効です。

1)MAMP/db/mysql(+バージョンNo)/の中身をまず全部別フォルダに避ける。
2)MAMPを起動する。–この時点ではMySQLは起動に失敗するが、いくつかの初期ファイルは(1)でからにしたフォルダにはできている
3)(1)で空にしたフォルダに、避けておいたフォルダからmysql、sys、performance_schemaフォルダを戻す。
4)再度MAMPを起動する。ここではMySQLは起動するはず。
5)MySQLに複数DBを登録していて、インポートに関係ないものがあったらそのフォルダも避けておいたフォルダから戻す。
6)MySQLを再起動して、壊れていなかったDBがちゃんと使えるかを確認する。
7)改めて、インポートに失敗したダンプをインポート。今度はMacを酷使せずそっとして置く。

これで元通りになりました。
ちなみに最初に壊れたDBだけをMAMP/db/mysql(+バージョンNo)から外して起動してみたんですがだめでした。