LoginSignup
17
22

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-11-06

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が出てくることを確認して、完了

17
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
22