MySQLのリペア
過去に、会社で MySQL の MediaWiki データベースが故障している報告を受けたことがありました。そのときの現象としては MediaWiki で記事の書き込み後に保存ボタンを押すと、以下のエラーが発生していました。
from within function SearchMySQL4::update. MySQL returned error 1016: Can't open file: 'mediawikisearchindex.MYI' (errno: 145) (localhost)
これは、以下の手順でリペアできると下記の記事に記載されていました。
7.1.3.1. MyISAM テーブルが破損した場合
MySQLでテーブル破損→修復
MySQL DB の修復方法について以下にまとめておきます。
“Can't open file: 'mt_xxx.MYI'. (errno: 145)” のエラーが発生している場合は、REPAIR コマンドで修復ができる場合があります。そのときは、この方法を行うことで回復することができました。
SHELL> mysql -u root -p Database;
mysql> repair table mt_entry(エラーが表示されたDB名);
もしくは、対象のMYIが存在するDBのディレクトリに移動
SHELL> cd /var/lib/mysql/DBファイル名/ SHELL> myisamchk -r mt_entry(対象のテーブル名)
エラー発生した場合、書き込み権限を確認
myisamchk: error: Can't create new tempfile: 'mt_entry.TMD'
今回の場合は、エラーが以下のものだったので、このように対処した。
from within function SearchMySQL4::update. MySQL returned error 1016: Can't open file: 'mediawikisearchindex.MYI' (errno: 145) (localhost)
mysql> repair table mediawikisearchindex;