MySQLのFLUSH構文は、
FLUSH LOGS構文
FLUSH LOGS構文を利用して各ログファイルをスイッチさせるには、FLUSH <log_
を実行します。log_
に入るのは、FLUSH <log_
を実行すると番号を繰り上げたバイナリログまたはリレーログファイルを生成し、
また、FLUSH RELAY LOGS FOR CHANNEL [channel名]
とするとこで、
mysql>SHOW BINARY LOGS; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000010 | 33028 | | mysql-bin.000011 | 218 | | mysql-bin.000012 | 242 | | mysql-bin.000013 | 28133 | +------------------+-----------+ 4 rows in set (0.01 sec) mysql>FLUSH BINARY LOGS; Query OK, 0 rows affected (0.10 sec) mysql>SHOW BINARY LOGS; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000010 | 33028 | | mysql-bin.000011 | 218 | | mysql-bin.000012 | 242 | | mysql-bin.000013 | 28180 | | mysql-bin.000014 | 195 | +------------------+-----------+ 5 rows in set (0.00 sec)
ERROR, GENERAL, SLOWログは、FLUSH <log_
を実行します。
$ mv slow.log slow.log.20180910 mysql>FLUSH SLOW LOGS; Query OK, 0 rows affected (0.01 sec) $ ll slow.log* -rw-r----- 1 mysql mysql 190 Sep 10 14:43 slow.log -rw-r----- 1 mysql mysql 2187 Sep 10 14:39 slow.log.20180910
log_
FLUSH LOGS
を実行した場合は、
FLUSH構文のPRIVILEGES、USER_RESOURCES、STATUS、OPTIMIZER_COSTS
FLUSH PRIVILEGES
FLUSH PRIVILEGES
はデータベース内のGRANTテーブルから再読込を実行します。通常、FLUSH PRIVILEGES
を実行する必要があります。CREATE USERやGRANT構文を実行した場合は自動で再読込が実行されるため必要ありませんが、FLUSH PRIVILEGES
を実行する必要があります。
詳細については第17回 MySQLのユーザ管理について
FLUSH USER_RESOURCES
もし、FLUSH USER_
を利用してリソースの制限をリセットすることができます。
リソース制限があった場合、
mysql> SELECT * FROM t1; ERROR 1226 (42000): User 'mysql' has exceeded the 'max_questions' resource (current value: 3) ERROR 2014 (HY000): Commands out of sync; you can't run this command now
FLUSH STATUS
実行中のセッションステータス変数をリセットします。FLUSH STATUS
によくある誤解もご覧ください。
FLUSH OPTIMIZER_COSTS
mysqlデータベース内のコストモデルテーブル
FLUSH TABLE構文
FLUSH TABLES
オープンしているテーブルをすべて閉じて、FLUSH TABLES table_
とすることで、
FLUSH TABLES WITH READ LOCK
オープンしているすべてのテーブルを閉じて、FLUSH TABLES tbl_
とテーブル名を指定することもできます。
テーブル名を指定した場合は排他的なメタデータロックを取得するため、
FLUSH TABLES ... FOR EXPORT
MySQLが起動したまま、
この操作が実行されると、
FLUSH構文とレプリケーション
基本的に、FLUSH LOGS, FLUSH TABLES WITH READ LOCK, FLUSH TABLES tbl_
を除くFLUSH構文はバイナリログに書かれるため、FLUSH NO_
のようにNO_