regepanのはてなブログ

個人的なメモ帳レベルの文章。

VagrantのMySQLが久々に壊れたので、復旧メモ。

  • WordPressでとあるページを開くと激重で全然ページが描画されない。数分〜10分以上待つ必要がある。本番サーバだとすぐ描画される。
  • Macbookの電池が弱っていて2時間位で電池切れになる。突然Macが電池切れで落ちた。いつも落ちるのだけどMySQLが壊れたのは今回が初めて。
  • 帰宅してアダプタ付けて再起動するとMySQLが起動しない。Macを再起動してもvagrantを再起動しても起動しない。
  • この時Mac自体のSSDの空き容量も10GB以下になっていた。MySQLがめちゃめちゃ書き込みしてたということでは無く、普段使いで容量が減っていた。
# /etc/mysql/my.cnf
wait_timeout            = 86400
max_allowed_packet      = 1G
innodb_buffer_pool_size = 1G

↑試したけど起動せず。

# /etc/mysql/my.cnf
innodb_force_recovery = 3

↑1,2が起動せず、3で起動した。すばらしい。

mysqldump -u root -p -x --all-databases > alldatabase.dump

↑これで全データベースをエクスポート出来る。
だが、容量が大きすぎるカラムでエラーが出て止まる。
容量がでかすぎるDBもdropしようとしてもエラーで止まるので削除出来なかった。。これは困る。


↓ubuntu16だとこの中に全てのDBが入ってるので、このフォルダをコピーしてバックアップとしてもいいのかもしれない。復元している人が居ない...。復元方法が不明なので、mysqldumpで全てのDBのバックアップを取っておくのが無難。

/var/lib/mysql

で、MySQLを全部消して再インストールはせず、初期化することにした。結果これで今の所動いてるっぽい。まだ2日しか経ってないけど。

MySQLのデータベースを初期化する - Qiita


Ubuntu 16.04 LTS で MySQL のデータを初期化する - 約束の地