MySQL
SQL
DB

テーブルが壊れているかと思ったので、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が出てくることを確認して、完了