MySQL 5.1 リファレンスマニュアル :: 7 クライアントプログラムとユーティリティ プログラム :: 7.11 mysqlcheck — テーブル メンテナンスと修復プログラム
« 7.10 mysqlbinlog — バイナリログファイルを処理するためのユーティリティ

7.12 mysqldump — データベースバックアッププログラム »
Section Navigation      [Toggle]
  • 7 クライアントプログラムとユーティリティ プログラム
  • 7.1 クライアントプログラムとユーティリティ プログラムの概要
  • 7.2 my_print_defaults — オプション ファイルから オプションを表示する
  • 7.3 myisam_ftdump — フル テキスト インデックス情報を表示する
  • 7.4 myisamchk — MyISAM テーブル メンテナンス ユーティリティ
  • 7.5 myisamlog — Display MyISAM Log File Contents
  • 7.6 myisampack — 圧縮された、読み取り専用MyISAM テーブルを作成する。
  • 7.7 mysql — MySQL コマンド ライン ツール
  • 7.8 mysqlaccess — アクセス権限をチェックするクライアント
  • 7.9 mysqladmin — MySQL サーバの管理を行うクライアント
  • 7.10 mysqlbinlog — バイナリログファイルを処理するためのユーティリティ
  • 7.11 mysqlcheck — テーブル メンテナンスと修復プログラム
  • 7.12 mysqldump — データベースバックアッププログラム
  • 7.13 mysqlhotcopy — データベースバックアッププログラム
  • 7.14 mysqlimport — データインポートプログラム
  • 7.15 mysqlshow — データベース、テーブル、カラム情報を表示します。
  • 7.16 mysqlslap — クライアント負荷エミュレーション
  • 7.17 mysql_zap — パターンとマッチする処理を消去します。
  • 7.18 perror — エラーコードの説明
  • 7.19 replace — 文字列置き換えユーティリティ

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

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

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

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

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

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は次のオプションをサポートします。

  • --help, -?

    ヘルプ メッセージを表示し、閉じます。

  • --all-databases, -A

    データベース内のテーブルを全てチェックします。これは--databasesオプションを使用してコマンドライン上のデータベース全てに名前をつけることと同じです。

  • --all-in-1, -1

    各テーブルのためにステートメントを発行する代わりに、データベースから処理されるテーブルの名前を記載しているデータベースごとにシングルステートメントを実行します。

  • --analyze, -a

    テーブルを分析します。

  • --auto-repair

    チェックされたテーブルが破壊されていた場合、自動的に修復します。必要な修復は全てのテーブルがチェックされた後に実行されます。

  • --character-sets-dir=path

    キャラクタ セットがインストールされるディレクトリです。項4.10.1. 「データおよびソート用キャラクタ セット」 を参照してください。

  • --check, -c

    テーブルにエラーが無いかチェックします。これがデフォルトオペレーションになります。

  • --check-only-changed, -C

    最後に行われたチェックより変更されたテーブル、もしくはしっかり閉じられていないテーブルをチェックします。

  • --check-upgrade, -g

    CHECK TABLEをFOR UPGRADEオプションと共に起動し、現サーババージョンとの互換性の無いテーブルがあるかチェックします。これにより--fix-db-namesと--fix-table-namesオプションを自動的に有効化します。--check-upgradeはMySQL 5.1.7.で追加されました。

  • --compress

    双方が圧縮をサポートしている場合、クライアント・サーバ間で行きかう情報を全て圧縮します。

  • --databases, -B

    名づけられたデータベース内のテーブルを全て処理します。通常、mysqlcheckはコマンドライン上の最初のアーギュメント名とそれに続く名をテーブル名として認識します。このオプションを使用sるうことで、名前のついたアーギュメントを全てデータベース名として認識します。

  • --debug[=debug_options], -# [debug_options]

    デバッグのログを書き込みます。debug_options文字列は大抵'd:t:o,file_name'になります。

  • --default-character-set=charset_name

    charset_nameをデフォルトキャラクタセットとして使用します。項4.10.1. 「データおよびソート用キャラクタ セット」 を参照してください。

  • --extended, -e

    テーブルをチェックするのにこのオプションを試用している場合、100%適合していることを保証しますが、時間がかかります。

    このオプションを使用してテーブルを修復している場合、修復作業に時間がかかる上、必要な無い無駄な行を生成することもあります。!

  • --fast、-F

    正しく閉じられていないテーブルのみをチェックする。

  • --fix-db-names

    データベース名を5.1フォーマットに変換します。特別な文字を含むデータベース名のみ影響を受けます。このオプションはMySQL 5.1.7.加されました。

  • --fix-table-names

    データベース名を5.1フォーマットに変換します。特別な文字を含むテーブル名のみ影響を受けます。このオプションはMySQL 5.1.7.加されました。

  • --force, -f

    SQLエラーが発生しても続けます。

  • --host=host_name, -h host_name

    与えられたホスト上でMySQLサーバに接続します。

  • --medium-check, -m

    --extendedオペレーションよりも速いチェックを行います。これはエラーの99.99%をチェックし、ほとんどの場合において十分な成果を発揮します。

  • --optimize, -o

    テーブルを最適化します。

  • --password[=password], -p[password]

    サーバに接続する際使用するパスワードです。ショートオプションフォーム(-p)を使用した場合、オプションとパスワードの間にスペースを置くことはできません。コマンドライン上で--password あるいは-pに続くオプションからpassword値を取り除いた場合、パスワード値を求められます。

    コマンドライン上でのパスワードの特定は安全ではありません。項4.8.6. 「パスワードのセキュリティ」 を参照してください。

  • --port=port_num, -P port_num

    コネクションに使用するTCP/IPポート番号です。

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    使用するべき接続プロトコルです。

  • --quick, -q

    このオプションを使用してテーブルをチェックしている場合、正しくないリンクをチェックするために行のスキャンを行いません。これが最速のチェックメソッドです。

    このオプションを使用してテーブルを修復している場合、インデックスとリーのみの修復を試みます。これが最速の修復メソッドです。

  • --repair, -r

    ユニークではないユニークキー以外の全てを修復できるリペアを実行します。

  • --silent, -s

    サイレントモード。エラーメッセージのみプリントします。

  • --socket=path, -S path

    localhostの接続用に使用する、ユニックスではソケットファイル、Windowsでは使用する名づけられたパイプ。

  • --ssl*

    --sslで始まるオプションは、SSLを介してサーバに接続し、SSL キーや証明の場所を明示するか否かを指定します。項4.8.7.3. 「SSL コマンド オプション」 を参照してください。

  • --tables

    --databasesか-Bオプションを重ね処理します。オプションに続く全てのネームアーギュメントはテーブル名として認識されます。

  • --use-frm

    MyISAMの修復オペレーションでは、.frmファイルからテーブルストラクチャを取得することで.MYIヘッダが破壊されていてもテーブルが修復できます。

  • --user=user_name, -u user_name

    サーバに接続する際使用するMySQLユーザ名です。

  • --verbose, -v

    Verbose モードプログラムオペレーションのあらゆるステージの情報をプリントします。

  • --version, -V

    バージョン情報を表示し、閉じます。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates