mysqlcheck — テーブル メンテナンスと修復プログラム

mysqlcheckクライアントはテーブルのチェック、修復、最適化、そして分析を行います。

mysqlcheckのファンクションはmyisamchkと似ていますが、作動方法が異なります。実質的な作動方法の違いは、mysqlcheckmysqldサーバが作動中の時に使用されなければいけません。myisamchkはこのサーバが作動していない時に使用品kればいけません。mysqlcheckを使用することの利点は、テーブルのチェックや修復時にサーバを停止させなくてすむことです。

mysqlcheckはSQLステートメントCHECK TABLEREPAIR TABLEANALYZE TABLE、そしてOPTIMIZE TABLEをユーザにとって便利な方法で使用します。実行したいオペレーションに対してどのステートメントを使用するか決定し、実行のためサーバにステートメントを送信します。各ステートメントがどのストレージエンジンと作動するかは、ステートメントの説明を章 12. SQL ステートメント構文で参照してください。

MyISAMストレージエンジンは全4ステートメントをサポートしています。よって、mysqlcheckMyISAMテーブル上で全4オペレーションを実行することができます。他のストレージエンジンは必ずしも全てのオペレーションをサポートしているとは限りません。そのような場合、エラーメッセージが表示されます。例えば、test.tMEMORYテーブルの場合、チェックしようとすれば以下の結果が生成されます。

shell> mysqlcheck test t
test.t
note     : The storage engine for the table doesn't support check

一般的に、mysqlcheckを起動するには3つの方法があります。

shell> mysqlcheck [options] db_name [tables]
shell> mysqlcheck [options] --databases db_name1 [db_name2 db_name3...]
shell> mysqlcheck [options] --all-databases

db_nameに続くテーブルに名前をつけない場合、もしくは--databases--all-databasesオプションを使用している場合、データベース全体がチェックされます。

他のクライアントプログラムに比べ、mysqlcheckは特別な機能があります。テーブルチェックのデフォルト行為(--check) はバイナリの名前を変更することで変えられます。テーブルをデフォルトで修復するツールが必要な場合、mysqlrepairと名づけたmysqlcheckのコピーを作成するか、mysqlrepairと名づけられたmysqlcheckへのシンボリックリンクを作成してください。mysqlrepairを起動すれば、テーブルを修復します。

以下の名前はmysqlcheckのデフォルト行為を変更するのに使用できます。

mysqlrepair デフォルトオプションは--repair
mysqlanalyze デフォルトオプションは--analyze
mysqloptimize デフォルトオプションは--optimize

mysqlcheckは次のオプションをサポートします。