読者です 読者をやめる 読者になる 読者になる

直径1.5メートル

ひよっこエンジニアのちょっとしたメモ。主に備忘録。

【MySQL】突然のIncorrect key file for table...エラー対応メモ

MySQL 開発

結果から書くとディスクフルだっただけでしたが、MySQL経験が浅いということもあり、初めて見るエラーに心臓止まるかと思った出来事でした。

- *** -


エラー文の「Incorrect key file for table」でググるとこちらのページがひっかかります。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 15.2.4.1 MyISAM テーブルの破損

「え?破損?」と、早速ビビリポイントが出てくるのですが、落ち着いて中を見ます。

次の状況が発生した場合、テーブルが破損するおそれがあります。
・ mysqld プロセスは、書き込みの最中に強制終了されます。
・コンピュータが予期せずシャットダウンされます (たとえば、コンピューターの電源が切られた場合など)。
・ハードウェア障害。
・サーバーが修正中のテーブルを、外部プログラム (myisamchkなど) を使用して同時に修正しています。
MySQL または MyISAM コードのソフトウェアバグです。
MyISAM テーブルのヘルスを CHECK TABLE ステートメントを利用して確認でき、破損した MyISAM テーブルを REPAIR TABLE を利用して修復できます。

プロセスやサーバ類になにも問題ないことを確認し、もしかしたら本当にテーブルぶっ壊れたかもしれない…と思いながらmysqlcheckコマンドでテーブルのヘルスチェックを試します。
mysqlcheckは下記が参考になりました。 d.hatena.ne.jp

念のため全テーブルをチェックしましたが、全てOKで返ってきました。
頭を抱えながら再度「Incorrect key file for table」でググると、こちらの記事にたどり着きます。
d.hatena.ne.jp 容量の問題かも、という文に「そんなまさか」と思いながらdfコマンドを叩くと、案の定ディスク使用量が100%でした…。

よく考えると、確かにディスクフルだと実行できないよなぁ。