MySQL の壊れたテーブルを修復

MySQL の壊れたテーブルを修復

サーバーのエラーを検知したので確認してみると、mysql のログファイルに下記のようなエラーが出ていました。

どうやら WordPress で使用しているデータベースの wp_options というテーブルの読み込みでエラーが発生しているみたいです。

 

調べてみると、テーブルが破損した可能性が高いらしい…

ということで、テーブルを修復する手順を紹介します。

※CUI 上で操作していますが、SQL 文さえ実行できればよいので、phpmyadmin 等でも修復可能です。

Mysql の破損したテーブルを修復

mysql にログイン

 

データベースの選択

 

エラーが出ている wp_options テーブルにアクセスします。

やはり破損してそうです。

 

下記の SQL で、check します。

破損してますね。
下記の SQL で修復します。

 

正常に修復できたか確認するため、念のためもう一度 check しておきます。

修復できたようです。

error ログも出なくなったので、解決できたようです。

 

なぜテーブルが破損したか

このエラーの発生時刻を鑑みると、どうやら WordPress の記事の編集中に httpd プロセスを停止してしまったのが原因として考えられそうです。しかも、httpd プロセスの停止後すぐにシステムを再起動してしまったので、そちらも原因として考えられそう。wp_options テーブルなので関係ない気もしますが、なんにせよ WordPress 上でなにか作業中に httpd プロセスやシステムを停止するのは NG ですね。(当たり前ですが…)