Table ‘tablename’ is marked as crashed and should be repaired Mysqlのテーブルを修復する

広告

先日データベースサーバーのディスク容量が一杯になってしまい、動作が止まってしまった。

ログの削除で容量に空きができたものの、複数のテーブルで’Table ‘tablename’ is marked as crashed and should be repaired’ といったエラーが出てselectすらできない状況になってしまった。

広告

複数テーブルの修復ならREPAIRコマンドよりmysqlcheckがオススメ

最初該当テーブルを一つづつrepairコマンドで修復していました。

mysqlのコンソールから↑こんな感じの操作でうまくいけば治るのですが、今回は修復の必要があるテーブルが多すぎてやってられない。

何かないかと検索していたらありました!

mysqlcheckで一気に修復

mysqlcheckで一気に修復できることが判明

上記コマンドでデータベースdbnameのテーブル全てを修復できます。

ついでにテーブルのチェックと最適化も行う

-cはテーブルのチェックで、-oはテーブルの最適化です。

サーバーの異常停止やテーブルの確認を行いたい場合は上記コマンドでテーブルのチェック、最適化、修復ができるので、心配な時は実行してみるといいかもしれません。

広告

コメントをどうぞ

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">