Heim >Datenbank >MySQL-Tutorial >MySQL备份中FLUSH命令的用法

MySQL备份中FLUSH命令的用法

WBOY
WBOYOriginal
2016-06-07 17:31:071321Durchsuche

MySQL数据库我们在做数据库备份时经常用FLUSH命令,下面总结一下语法。如果服务器使用--log-error选项,则FLUSH LOGS会导致错误日

MySQL数据库我们在做数据库备份时经常用FLUSH命令,下面总结一下语法。

FLUSH语法

FLUSH [LOCAL | NO_WRITE_TO_BINLOG] flush_option [, flush_option] ...

如果您想要清除MySQL使用的部分内部缓存,您应该使用FLUSH语句。要执行FLUSH,您必须拥有RELOAD权限。

flush_option可以为以下的任何一个:

· HOSTS

用于清空主机缓存表。如果有的主机更改了IP号或如果您得到了错误信息Host host_name is blocked,则您应该刷新主机表。当在连接到MySQL服务器时,如果对于一个给定的主机,接连出现错误“多于max_connect_errors”,此时,MySQL会假定出现了错误,并阻止主机后续的连接申请。刷新主机表允许主机尝试再次连接。您可以使用max_connect_errors=999999999启动mysqld,以避免此错误信息。

· DES_KEY_FILE

用于在服务器启动时,从采用--des-key-file选项指定的文件重新载入DES关键字。

· LOGS

用于关闭并重新打开所有的日志文件。如果您已经指定了一个更新日志文件或一个二进制日志文件,同时没有扩展,则相对于前一个文件,日志文件的扩展号增加1。如果您在文件名称中使用了一个扩展,则MySQL会关闭并重新打开日志文件。在Unix中,当相mysqld服务器发送一个SIGHUP信号时,也会如此(例外情况是部分Mac OS X 10.3版本。在这些版本中,mysqld忽略SIGHUP和SIGQUIT)。

如果服务器使用--log-error选项,则FLUSH LOGS会导致错误日志被重命名(使用后缀-old),同时mysqld会创建一个新的空日志文件。如果没有给定--log-error选项,则不会进行重命名。

· PRIVILEGES

用于从mysql数据库中的授权表重新载入权限。

· QUERY CACHE

对查询缓存进行整理碎片,以更好得利用存储器。与RESET QUERY CACHE不同,本语句不会从缓存中取消任何查询。

· STATUS

用于把多数状态变量重新设置为零。只在当调试查询时,您才应该使用此项。

· {TABLE | TABLES} [tbl_name [, tbl_name] ...]

当没有表被命名时,关闭所有打开的表,并迫使所有正在使用的表关闭。这也会刷新查询缓存。此项含有一个或多个表名称,只刷新给定的表。和RESET QUERY CACHE语句一样,FLUSH TABLES还会取消来自查询缓存的所有查询结果。

· TABLES WITH READ LOCK

对于所有带读取锁定的数据库,关闭所有打开的表,并锁定所有的表,直到您执行UNLOCK TABLES为止。如果您拥有一个可以及时进行快照的文件系统,比如Veritas,则这是进行备份的非常方便的方法。

· USER_RESOURCES

用于把所有每小时用户资源重新设置为零。这可以使已经达到了每小时连接、查询或更新限值的客户端立刻重新恢复活性。FLUSH USER_RESOURCES不适用于同时连接的最大限值。FLUSH语句被写入二进制日志,除非使用了自选的NO_WRITE_TO_BINLOG关键字(或其别名LOCAL)。注释:在任何情况下,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.2-alpha中,不可能在已存储的函数或触发程序中发布FLUSH语句。不过,,您可以在已存储的过程中使用FLUSH,只要它们不会从已存储的函数或触发程序中被调用。

推荐阅读:

MySQL备份还原参数详解

MySQL备份工具mysqldump和mydumper的备份效率比较

MySQL备份恢复“故障”总结

MySQL备份与恢复的三种方法总结

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn