Edited at

テーブルが壊れているかと思ったので、mysqlcheckで修復したときのメモ

More than 1 year has passed since last update.


mysqlcheckとは

mysqlcheckは、MySQLのテーブルメンテナンス、修復を行なうことができる。

内部的には、CHECK, ANALYZE, REPAIR, OPTIMIZEのコマンドを利用して作業を行なう。

また、MySQLを稼働しているときに、実行することができる。


1. check(テーブルのエラーチェック)


  • オプション

-c, --check

テーブルエラーを確認する


  • 全データベースを確認する場合

# mysqlcheck -c -u root -p --all-databases


  • sampleデータベースのみを確認する場合

# mysqlcheck -c sample -u root -p


2. analyze(テーブルの分析)


  • オプション

-a, --analyze

テーブルを分析する


  • 全データベースを確認する場合

# mysqlcheck -a -u root -p --all-databases


  • sampleデータベースのみを確認する場合

# mysqlcheck -a sample -u root -p


3. optimize(テーブルの最適化)


  • オプション

-o, --optimize

テーブルを最適化する


  • 全データベースを確認する場合

# mysqlcheck -o -u root -p --all-databases


  • sampleデータベースのみを確認する場合

# mysqlcheck -o sample -u root -p


4. repair(テーブルの修復)


  • オプション

-r, --repair

一意ではないユニークキー以外のすべてを修正できる修復を実行する

--auto-repair
確認されたテーブルが壊れていた場合、自動的に修復


  • 全データベースを修復する場合

# mysqlcheck -r -u root -p --all-databases


  • sampleデータベースのみを修復する場合

# mysqlcheck -r sample -u root -p


  • エラーチェックと修復を組み合わせて実行する場合

mysqlcheck --auto-repair -c -o sample -u root -p


結果

OKが出てくることを確認して、完了