FLUSH [LOCAL | NO_WRITE_TO_BINLOG]flush_option
[,flush_option
] ...
FLUSH
ステートメントは、MySQL
に利用された様々な内部キャッシュをクリア、または再ロードします。FLUSH
を実行する為には、RELOAD
権限を持つ必要があります。
RESET
ステートメントは
FLUSH
と似ています。詳しくは
項12.5.5.5. 「RESET
構文」 を参照してください。
flush_option
は、次のうちのどれかになり得ます。
HOSTS
ホスト キャッシュ
テーブルを空にします。もし、いくつかのホストが
IP 番号を変えたり、エラー メッセージ
Host
'
を受け取ったりしたら、ホスト
テーブルをフラッシュする必要があります。MySQL
サーバに接続中に、連続して
host_name
' is
blockedmax_connect_errors
以上のエラーがホストに発生すると、MySQL
は何か異常があると仮定して、それ以上の接続の要求をブロックします。ホスト
テーブルをフラッシュすると、ホストは再度接続を試みる事ができます。詳しくは
項B.1.2.5. 「Host '
」
を参照してください。このエラー
メッセージを避ける為に、host_name
' is
blocked--max_connect_errors=999999999
を利用して mysqld
をスタートする事ができます。
DES_KEY_FILE
サーバ起動時に --des-key-file
オプションを利用して指定されたファイルからの
DES キーを再ロードします。
LOGS
全てのログ
ファイルを閉じ、再オープンします。もしバイナリ
ログが有効であれば、バイナリ ログ
ファイルのシーケンス番号は前のファイルと比較して1つ増加されます。これは
Unix では、SIGHUP
シグナルを
mysqld
サーバに送信する事と同じです。(mysqld
が SIGHUP
と
SIGQUIT
を無視する Mac OS X 10.3
バージョン以外)
もしサーバが --log-error
オプションでスタートされたら、それは
FLUSH LOGS
によって
-old
のサフィックスを利用して現在のエラー
ログ
ファイルをリネームし、新しく空のログ
ファイルを作成します。もし
--log-error
オプションがなければリネームは行われません。
MASTER
(DEPRECATED)全てのバイナリ
ログを削除し、バイナリ ログ
インデックス
ファイルをリセットし、新しいバイナリ
ログを作成します。FLUSH MASTER
は RESET MASTER
と置き換えられ廃止予定であり、現在は後方互換だけがサポートされています。詳しくは
項12.6.1.2. 「RESET MASTER
構文」
を参照してください。
PRIVILEGES
mysql
データベース内で供与テーブルから権限を再ロードします。
QUERY CACHE
メモリ使用を向上させる為にクエリ
キャッシュをデフラグします。FLUSH
QUERY CACHE
は RESET QUERY
CACHE
とは違い、キャッシュからクエリを削除しません。
SLAVE
(DEPRECATED)リレー ログ
ファイルやマスタのバイナリ
ログ内の複製位置を含む、全ての複製スレーブ
パラメータをリセットします。FLUSH
SLAVE
は RESET SLAVE
と置き換えられ廃止予定であり、現在は後方互換だけがサポートされています。詳しくは
項12.6.2.5. 「RESET SLAVE
構文」
を参照してください。
STATUS
このオプションは、グローバル値に現在のスレッドのセッション
ステータス変数値を追加し、セッション値をゼロにリセットします。それはキー
キャッシュ(デフォルトと名づけられた物)のカウンタをゼロにリセットし、現在オープンしている接続の数に
Max_used_conections
を設定します。これは、クエリをデバグしている時のみ利用するべき物です。詳しくは
項1.7. 「質問またはバグの報告」
を参照してください。
{TABLE | TABLES}
[
tbl_name
[,
tbl_name
] ...]
どのテーブル名づけられていない時に、全てのオープンなテーブルを閉じ、利用中の全てのテーブルを強制的に閉じます。これはクエリ
キャッシュもフラッシュします。複数のテーブル名があると、与えられたテーブルだけをフラッシュします。FLUSH
TABLES
は RESET QUERY CACHE
のように、クエリ
キャッシュから全てのクエリ結果の削除もします。
TABLES WITH READ LOCK
UNLOCK TABLES
を実行して明示的にロックを解除するまで、リード
ロックを利用して全てのデータベースの全てのオープン
テーブルを閉じ、全てのテーブルをロックします。これは、もし
Veritas
のような、時間内にスナップショットを撮る事ができるファイル
システムを持っているなら、バックアップを取るのに大変便利な方法になります。
FLUSH TABLES WITH READ LOCK
は、グローバル リード
ロックは取得しますがテーブル
ロックはしないので、テーブル
ロックと暗黙的なコミットに関しては
LOCK TABLES
と UNLOCK
TABLES
と同じような動作の制約は受けません。
UNLOCK TABLES
は、もしテーブルが現在 LOCK
TABLES
でロックされていたらトランザクションを行います。これは、FLUSH
TABLES WITH READ LOCK
ステートメントがテーブル レベル
ロックを取得しない為、これに続く
UNLOCK TABLES
に対しては行われません。
トランザクションを開始すると、LOCK
TABLES
を利用して行ったテーブル
ロックを、まるで UNLOCK
TABLES
を実行したかのように解除してしまいます。トランザクションを開始しても、FLUSH
TABLES WITH READ LOCK
を利用して行われたグローバル リード
ロックの解除はしません。
USER_RESOURCES
全ての時間あたりのユーザ
リソースをゼロにリセットします。これは、時間ごとの接続、クエリ、更新リミットに達したクライアントがすぐに活動を再開できるようにします。FLUSH
USER_RESOURCES
は最大同時接続のリミットに適応しません。詳しくは
項12.5.1.3. 「GRANT
構文」 を参照してください。
FLUSH
ステートメントは、任意の
NO_WRITE_TO_BINLOG
キーワード(またはそのエイリアス
LOCAL
)
が利用されない限り、バイナリ
ログに書きこまれます。これは、複製マスタとして機能している
MySQL サーバ上で利用される FLUSH
ステートメントが、複製スレーブにデフォルトで複製される為に行われます。
注意:FLUSH
LOGS
、FLUSH
MASTER
、FLUSH SLAVE
、そして
FLUSH TABLES WITH READ LOCK
は、スレーブに複製されると問題を引き起こす為、ログインされません。
flush-hosts
、flush-logs
、flush-privileges
、flush-status
、または
flush-tables
コマンドを利用する
mysqladmin
ユーティリティで、いくつかのステートメントにアクセスする事ができます。
注意:MySQL 5.1
内では、ストアド
ファンクションやトリガ内で
FLUSH
ステートメントを発行する事は不可能です。しかし、ストアド
プロシージャ内の FLUSH
がストアド
ファンクションやトリガにコールされない限り、それらを利用してもよいでしょう。詳しくは
項D.1. 「ストアド ルーチンとトリガの規制」
を参照してください。
RESET
ステートメントが複製の中でどのように利用されるかという情報については
項12.5.5.5. 「RESET
構文」 も参照してください。