MySQL バージョン 3.23.38 以降、MyISAM
テーブルのチェックおよび修復のために新しいツールを利用できるようになっています。myisamchk
との違いは、myisamchk
が、サーバが実行していないときに使用するのに対し、mysqlcheck
は mysqld
サーバが実行しているときに使用します。テーブルのチェックまたは修復のたびにサーバを停止する必要がなくなりました。
mysqlcheck
は、MySQL サーバコマンド
CHECK
、REPAIR
、ANALYZE
、および
OPTIMIZE
を利用して、便利なテーブルの保守およびクラッシュからのリカバリ方法を提供します。
mysqlcheck
を開始する方法は 3
つあります。
shell>mysqlcheck [OPTIONS] database [tables]
shell>mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
shell>mysqlcheck [OPTIONS] --all-databases
データベースおよびテーブルの選択に関しては、mysqldump
と似た方法になります。
mysqlcheck
には、他のクライアントにはない特殊機能があります。デフォルトの動作であるテーブルチェック(-c)を、バイナリの名前を変更することによって変更できます。デフォルトでテーブルを修復するツールが必要であれば、mysqlcheck
を mysqlrepair
という新しい名前でハードドライブにコピーするか、mysqlrepair
へのシンボリックリンクを作成し、そのシンボリックリンクの名前を
mysqlrepair
にします。mysqlrepair
を起動すると、デフォルトでテーブルが修復されます。
mysqlcheck
のデフォルト動作を変更するために使用できる名前は以下のとおりです。
mysqlrepair: The default option will be -r mysqlanalyze: The default option will be -a mysqloptimize: The default option will be -o
以下、mysqlcheck
で使用可能なオプションの一覧です。使用しているバージョンでのサポート状態を確認するには、mysqlcheck
--help
を実行してください。
-A, --all-databases
すべてのデータベースをチェックする。これは、すべてのデータベースを選択した状態で --databases を実行するのと同じである。
-1, --all-in-1
テーブルごとにクエリを 1 つずつ作成するのではなく、データベースごとにまとめてすべてのクエリを実行する。テーブル名はカンマで区切る。
-a, --analyze
指定したテーブルを分析する。
--auto-repair
チェックしたテーブルが破損していた場合、自動的に修復する。破損したテーブルがあった場合、すべてのテーブルのチェックが終わってから修復が行われる。
-#, --debug=...
デバッグログを出力する。これは、'd:t:o,filename' であることが多い。
--character-sets-dir=...
キャラクタセットが格納されているディレクトリ。
-c, --check
テーブルのエラーをチェックする。
-C, --check-only-changed
前回のチェック以降に変更されたテーブルと、正しく閉じられなかったテーブルだけをチェックする。
--compress
サーバ/クライアントプロトコルで圧縮を使用する。
-?, --help
ヘルプメッセージを表示して終了する。
-B, --databases
いくつかのデータベースをチェックする。注意: ここでは、テーブルを指定しない。名前の引数はすべて、データベース名として扱われる。
--default-character-set=...
デフォルトのキャラクタセットを設定する。
-F, --fast
正しく閉じられなかったテーブルだけをチェックする。
-f, --force
SQL エラーが発生しても続行する。
-e, --extended
このオプションを CHECK TABLE とともに使用すれば、テーブルの整合性が 100 パーセント保証されるが、時間がかかる。
このオプションを REPAIR TABLE とともに使用した場合、テーブルの拡張修復が行われる。ただし、時間がかかるだけでなく、無駄なレコードも多く生成される可能性がある。
-h, --host=...
ホストに接続する。
-m, --medium-check
extended-check よりも速いが、全エラーの 99.99% しか見つけられない。しかし、ほとんどの場合これで十分である。
-o, --optimize
テーブルを最適化する。
-p, --password[=...]
サーバ接続時に使用するパスワード。パスワードを指定しなければ、プロンプトが表示される。
-P, --port=...
TCP/IP 接続に使用するポート番号。
--protocol=(TCP | SOCKET | PIPE | MEMORY)
使用する接続プロトコルを指定する。MySQL 4.1 で導入。
-q, --quick
このオプションを CHECK TABLE とともに使用すれば、不正リンクをチェックするレコードスキャンが行われない。これが最速のチェックである。
このオプションを REPAIR TABLE とともに使用すると、インデックスツリーの修復だけが実行される。これが、最速のテーブルの修復である。
-r, --repair
ほとんどのエラーを修復できる、ただし、ユニークキーが一意でないエラーには対応できない。
-s, --silent
エラーメッセージだけを出力する。
-S, --socket=...
接続に使用するソケットファイル。
--tables
--databases
(-B
)オプションを上書きする。このオプションの後ろの引数はすべて、テーブル名と見なされる。
-u, --user=#
カレントユーザでない場合のログインユーザ。
-v, --verbose
さまざまな段階の情報を出力する。
-V, --version
バージョン情報を出力して終了する。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.