FLUSH语法
FLUSH [LOCAL | NO_WRITE_TO_BINLOG] flush_option [, flush_option] ... 如果您想要清除MySQL使用的部分内部缓存, 您应该使用FLUSH语句。要执行FLUSH,您必须拥有RELOAD权限。
flush hosts
用于清空主机缓存表。如果有的主机更改了IP号或如果您得到了错误信息Host host_name is blocked,则您应该刷新主机表。当在连接到MySQL服务器时,如果对于一个给定的主机,接连出现错误“多于max_connect_errors”,此时,MySQL会假定出现了错误,并阻止主机后续的连接申请。刷新主机表允许主机尝试再次连接。请参见A.2.5节,“主机的host_name被屏蔽”。您可以使用max_connect_errors=999999999启动mysqld,以避免此错误信息。
flush LOGS
用于关闭并重新打开所有的日志文件。如果您已经指定了一个更新日志文件或一个二进制日志文件,同时没有扩展,则相对于前一个文件,日志文件的扩展号增加1。如果您在文件名称中使用了一个扩展,则MySQL会关闭并重新打开日志文件。在Unix中,当相mysqld服务器发送一个SIGHUP信号时,也会如此(例外情况是部分Mac OS X 10.3版本。在这些版本中,mysqld忽略SIGHUP和SIGQUIT)。
如果服务器使用--log-error选项,则FLUSH LOGS会导致错误日志被重命名(使用后缀-old),同时mysqld会创建一个新的空日志文件。如果没有给定--log-error选项,则不会进行重命名。
flush binary logs;
flush slow logs;
flush general logs;
flush binary logs;
flush relay logs;
FLUSH TABLES
关闭所有打开的表,同时该操作将会清空查询缓存中的内容。
FLUSH TABLES WITH READ LOCK 关闭所有打开的表,同时对于所有数据库中的表都加一个读锁,直到显示地执行unlock tables,该操作常常用于数据备份的时候。解锁的语句就是unlock tables。
flush master
mysql> reset master;
Query OK, 0 rows affected (0.06 sec)
mysql> show binary logs;
+------------+-----------+-----------+
| Log_name | File_size | Encrypted |
+------------+-----------+-----------+
| log.000001 | 156 | No |
+------------+-----------+-----------+
1 row in set (0.00 sec)
二、
mysql中flush logs操作会生成一个新的binlog文件。
如果在从库执行flush logs 不仅会生成一个新的binlog文件,而且会生成一个新的relaylog文件。
不仅如此,flush logs 还影响slow log和general log,
当删除slow log或者general log,然后执行flush logs,此时会再重新生成一个新的slow log或者general log
————————————————
版权声明:本文为CSDN博主「Data & safety」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w892824196/article/details/80641850