状況
WordPress で記事の更新中に macbook pro retina がいつものようにクラッシュ。
MySQL は Oracle のサイトにある dmg パッケージからインストールしたもの。
使用している DB エンジンは InnoDB。
my.cnf の [mysqld] セクションで
log-error=myerror.log
を入れて起動し、ログを確認したところ、
記事を格納するテーブルが壊れていた。
innodb_force_recovery=4
にしても、innodb_force_recovery=3
にしても、
問題のテーブルを drop 出来ない。
偶然、数日前にバックアップはとってあったので、後ほど利用。
対応
結局、データディレクトリを作りなおした。
行ったことは下記内容の、ほぼ、そのまま。
- mysqldump --all-databases --triggers > /path/to/dumpfile.sql
- service mysql shutdown
- rm -rf /path/to/datadir && mkdir /path/to/datadir && chown mysql.mysql /path/to/datadir
- iptables -I INPUT -p tcp --dport 3306 -j REJECT && service mysql start
- mysql_install_db --datadir=/path/to/datadir
- mysql < /path/to/dumpfile.sql
- Drop and restore any databases that were not intact during 1. from individual backups
- service mysql restart && service iptables restart
innodb - mysql - can't drop table does not exist, can't create table exists - Server Fault
上記中、 iptables に関する処理は今回は行ってない。
リスト中 (5) の mysql_install_db スクリプトは、
/usr/local/mysql/bin
ではなく、
/usr/local/mysql/scripts
に入っていた。
で。
データディレクトリを再構築後、 WordPress のインストールをし直し、バックアップをインポートした。
作業中のデータはいろいろ消えた (悲)。
macbook pro retina の GPU ドライバが原因と思しきクラッシュの問題を解決すべく、 Apple からのファームウェアリリースが待たれるところです。。。