myisamchk
          は以下のように起動します。
        
shell> myisamchk [options] tbl_name
          options は、myisamchk
          が実行することを指定します。それらについてはここで説明します(myisamchk
          --help
          を実行すると、オプションの一覧を取得できます)。オプションを指定しなければ、myisamchk
          はテーブルのチェックだけを行います。詳細情報を取得したり、myisamchk
          に修正を実行させるには、ここで説明するオプションを指定することが必要です。
        
          tbl_name
          は、チェックおよび修復対象となるデータベーステーブル名です。データベースディレクトリ以外の場所で
          myisamchk
          を実行する場合、myisamchk
          に対してファイルのパスを指定する必要があります。実際、myisamchk
          は処理対象のファイルがデータベースディレクトリにあるかどうかを問題にしません。データベーステーブルのファイルを他の場所にコピーし、そこでリカバリ操作を実行することもできます。
        
          myisamchk
          コマンドラインに複数のテーブル名を指定することもできます。また、インデックスファイル名(.MYI
          サフィックス付き)を指定することもできます。*.MYI
          パターンを使用すれば 1
          つのディレクトリ内のすべてのテーブルを指定することができます。
          たとえば、カレントディレクトリがデータベースディレクトリである場合、以下のようにすればディレクトリ内の全テーブルをチェックできます。
        
shell> myisamchk *.MYI
カレントディレクトリがデータベースディレクトリでない場合、以下のようにディレクトリのパスを指定することにより、その全テーブルをチェックできます。
shell> myisamchk /path/to/database_dir/*.MYI
MySQL データディレクトリのパスにワイルドカードを使用することにより、全データベースのすべてのテーブルをチェックすることもできます。
shell> myisamchk /path/to/datadir/*/*.MYI
すべてのテーブルに対して簡単にチェックを行う場合、以下の方法を推奨します。
myisamchk --silent --fast /path/to/datadir/*/*.MYI isamchk --silent /path/to/datadir/*/*.ISM
すべてのテーブルをチェックし、破損していたテーブルをすべて修復するには、以下を実行します。
myisamchk --silent --force --fast --update-state -O key_buffer=64M \
          -O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M \
          /path/to/datadir/*/*.MYI
isamchk --silent --force -O key_buffer=64M -O sort_buffer=64M \
        -O read_buffer=1M -O write_buffer=1M /path/to/datadir/*/*.ISM
この例では、64 メガバイト以上の空き容量があることを前提にしています。
注意: 以下のエラーが発生する場合があります。
myisamchk: warning: 1 clients is using or hasn't closed the table properly
          これは、他のプログラム(mysqld
          サーバなど)によって更新されてまだ閉じられていないファイル、または正しく閉じられていないファイルのテーブルをチェックしようとしているということです。
        
          mysqld
          を実行中であれば、FLUSH TABLES
          ですべてのテーブルの同期とクローズを強制的に実行し、myisamchk
          を実行する間は他のだれにもテーブルを使用させないようにしてください。MySQL
          バージョン 3.23
          で、この問題を回避する最も簡単な方法は、myisamchk
          の代わりに CHECK TABLE
          を使用してテーブルをチェックすることです。
        
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.

