このセクションで紹介されているオプションは myisamchk によって実行されるすべてのテーブルメンテナンス操作に使用できます。 このセクション以降のセクションは、テーブルのチェックまたは修復などの特定の操作のみに関するオプションを説明します。
-
ヘルプメッセージを表示して終了します。 オプションは操作の種類によってグループ化されています。
-
ヘルプメッセージを表示して終了します。 オプションは単独のリストに提示されます。
-
--debug=
,debug_options
-#
debug_options
デバッグのログを書き込みます。 一般的な
debug_options
文字列はd:t:o,
です。 デフォルトはfile_name
d:t:o,/tmp/myisamchk.trace
です。このオプションは、MySQL が
WITH_DEBUG
を使用して構築された場合にのみ使用できます。 Oracle によって提供される MySQL リリースバイナリは、このオプションを使用して構築されません。 -
--defaults-extra-file=
file_name
このオプションファイルは、グローバルオプションファイルのあとに読み取りますが、(UNIX では) ユーザーオプションファイルの前に読み取るようにしてください。 ファイルが存在しないかアクセスできない場合、エラーが発生します。
file_name
は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
指定されたオプションファイルのみ使用します。 ファイルが存在しないかアクセスできない場合、エラーが発生します。
file_name
は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
通常のオプショングループだけでなく、通常の名前に
str
のサフィクスが付いたグループも読み取ります。 たとえば、myisamchk は通常[myisamchk]
グループを読み取ります。--defaults-group-suffix=_other
オプションを指定した場合、myisamchk は[myisamchk_other]
グループも読み取ります。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
オプションファイルを読み取りません。 オプションファイルから不明のオプションを読み取ることが原因でプログラムの起動に失敗する場合、
--no-defaults
を使用して、オプションを読み取らないようにできます。例外として、
.mylogin.cnf
ファイルは、存在する場合はすべての場合に読み取られます。 これにより、--no-defaults
が使用された場合にも、コマンド行よりも安全な方法でパスワードを指定できます。(.mylogin.cnf
は mysql_config_editor ユーティリティーによって作成されます。 セクション4.6.7「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください)。このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
プログラム名と、オプションファイルから受け取るすべてのオプションを出力します。
このオプションおよびその他のオプションファイルオプションの詳細は、セクション4.2.2.3「オプションファイルの処理に影響するコマンド行オプション」 を参照してください。
-
サイレントモード。 エラーが発生したときのみ出力を書き出します。
-s
は myisamchk を非常にサイレントにするために 2 回 (-ss
) 使用できます。 -
冗長モード。 プログラムの動作についてより多くの情報を出力します。 これは
-d
と-e
とともに使用できます。 さらに多くの出力を得るためには、-v
を複数回 (-vv
、-vvv
) 使用します。 -
バージョン情報を表示して終了します。
-
テーブルがロックされている場合に、エラーで終了する代わりに、テーブルがロック解除されるまで待機してから続行します。 外部ロックを無効にした状態で mysqld を実行している場合、テーブルをロックできるのはもう 1 つの myisamchk コマンドのみです。
--
構文を使用すれば、次の変数も設定できます。
var_name
=value
変数 | デフォルト値 |
---|---|
decode_bits |
9 |
ft_max_word_len |
バージョンに依存 |
ft_min_word_len |
4 |
ft_stopword_file |
組み込みのリスト |
key_buffer_size |
523264 |
myisam_block_size |
1024 |
myisam_sort_key_blocks |
16 |
read_buffer_size |
262136 |
sort_buffer_size |
2097144 |
sort_key_blocks |
16 |
stats_method |
nulls_unequal |
write_buffer_size |
262136 |
可能な myisamchk 変数とデフォルト値は myisamchk --help で確認できます。
myisam_sort_buffer_size
は、キーをソートしてキーを修復するときに使用されます。これは、--recover
を使用する場合の通常のケースです。sort_buffer_size
は、myisam_sort_buffer_size
の非推奨シノニムです。
key_buffer_size
は --extend-check
でテーブルをチェックするとき、またはテーブルに (通常の挿入を実行する場合のように) 1 行ずつキーを入力することでキーを修復する際に使用されます。 キーバッファーを通しての修復は次の場合に使用されます。
--safe-recover
を使用する。キーのソートに必要な一時ファイルが、直接キーファイルを作成する場合と比較して倍以上の大きさとなる。 これは
CHAR
、VARCHAR
、またはTEXT
カラムに大きなキー値が与えられている場合によくあります。これは、ソート操作では処理中に完全なキー値を保存する必要があるからです。 一時スペースに余裕があり、ソートによって修復することを myisamchk に強制できる場合、--sort-recover
オプションを使用できます。
キーバッファーを使用する修復はソートを使用するよりもはるかにディスクの使用量が少ないですが、速度も落ちます。
より高速に修復を行いたい場合は、key_buffer_size
変数および myisam_sort_buffer_size
変数を、使用可能なメモリーの約 25% に設定します。 両方の変数が同時に使用されることはないので、両方の変数に大きい値を設定できます。
myisam_block_size
はインデックスブロックに使用されるサイズです。
stats_method
は、--analyze
オプションを指定した場合に、インデックス統計の集計で NULL
値がどう扱われるかに影響します。 myisam_stats_method
システム変数のような働きをします。 詳細は、セクション5.1.8「サーバーシステム変数」とセクション8.3.8「InnoDB および MyISAM インデックス統計コレクション」に含まれる myisam_stats_method
の説明を参照してください。
ft_min_word_len
および ft_max_word_len
は、MyISAM
テーブルの FULLTEXT
インデックスの語長を示します。ft_stopword_file
はストップワードファイルを指名します。 次の状況ではこれらをセットする必要があります。
myisamchk を使用してテーブルインデックスを変更する操作を実行する場合 (たとえば修復や分析)、特に指定しなければ、FULLTEXT
インデックスは、最小および最大の語長とストップワードファイルにデフォルトの全文パラメータ値を使用して再構築されます。 これにより、クエリーに失敗する可能性があります。
この問題は、これらのパラメータがサーバーでのみ認識されていることが原因で発生します。 MyISAM
インデックスファイルには格納されていません。 サーバー内の最小および最大の語長またはストップワードファイルを変更した場合に問題を回避するには、mysqld で使用するのと同じ ft_min_word_len
、ft_max_word_len
と ft_stopword_file
の値を myisamchk に指定してください。 たとえば、単語の最小長を 3 に設定した場合は、次のように myisamchk を使用してテーブルを修復できます。
shell> myisamchk --recover --ft_min_word_len=3 tbl_name.MYI
myisamchk とサーバーが全文パラメータに同じ値を確実に使用するには、オプションファイルの [mysqld]
と[myisamchk]
セクションの両方にそれぞれを置いてください。
[mysqld]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3
myisamchk を使用する代わりに、REPAIR TABLE
、ANALYZE TABLE
、OPTIMIZE TABLE
、または ALTER TABLE
を使用できます。 これらのステートメントは、適切に使用される全文パラメータ値が認識されているサーバーで実行されます。