MySQL Flush命令用法

来源:互联网 发布:数据标准管理需求 编辑:程序博客网 时间:2024/05/22 07:52

Flush语句,用于清除或重新加载各种高速缓存、表或者获取锁等。执行flush语句必须要有reload权限。

 

语法:

FLUSH [NO_WRITE_TO_BINLOG | LOCAL]

 

flush_option [,flush_option] ...

 

 

执行flush命令会默认写入二进制日志,以便能够把该操作的状态同步到Slave,如果不想写入二进制日志,则加上NO_WRITE_TO_BINLOG或其别名LOCAL参数。

注:FLUSH LOGSFLUSH TABLES WITH READ LOCK (withor without a table list)FLUSH TABLES tbl_name ... FOREXPORT在任何情况下都不会写入到二进制日志,因为如果这些命令同步到Slave可能会导致一些问题。

 

flush_option

 

DES_KEY_FILE:重新加载下次MySQL启动时的DES加密值。

 

HOSTS:清空主机名缓存。如果某个主机名IP地址换了或者出现以下错误信息

Host 'host_name' is blocked

就要执行flush hosts;命令来清空主机缓存。

如果一个连接请求的次数超过 max_connect_errors参数所指定的值,那么MySQL就会禁止该连接,执行flush hosts;命令来清空主机缓存即可。max_connect_errors默认的值是10.

 

[log_type] LOGS:

如果不指定log_type,则flush logs;默认关闭并重新加载二进制日志,生成一个新的二进制文件,并在原来的二进制日志名字编号的基础上加1,来重新命名新的二进制文件。

如果不指定logs_type参数,则默认关闭并重载所有日志,log_type参数:

BINARY:关闭并重新打开二进制日志文件;

ENGINE:关闭并重新打开任何可以刷新的有关存储引擎的日志。flush engine;命令会使InnoDB把日志写入磁盘;

ERROR:关闭并重新打开错误日志;

GENERAL:关闭并重新打开通用查询日志;

RELAY:关闭并重新打开relay log

SLOW:关闭并重新打开慢查询日志。

注:

MySQL 5.1以前刷新日志的话,如果定义了log-error参数,则会把现有的错误日志关闭并创建一个新的错误日志,就的以.old结尾命名。

log_type选项是在MySQL 5.5.3才有的。

 

PRIVILEGES:刷新mysql库的权限表(users表)。

 

 

QUERY CACHE:整理查询缓存以便更好的记忆它,flush query cache;不会清空查询缓存,只有flush tables或者reset query cahche;命令才会清空缓存。

STATUS:把当前会话的参数值增加为全局参数,并把当前会话的参数值置为0。一些全局参数也可能会被置为0。也会把键缓存计数器置为0并把max_used_connections的值置为当前打开的连接数的值。这个参数只有在调试SQL语句的时候用。

 

TABLES:刷新表,后面跟的参数待讨论...

 

USER_RESOURCES:把所有的用户一小时允许的资源值置为0。这个命令给所有达到各自会话资源上限的会话重新分配资源。FLUSH USER_RESOURCES这个命令不会刷新最大连接上限数。

 

flush tables|table命令会关闭所有的表,并清空所有查询缓存。reset query cache也是清空缓存的。在MySQL 5.6,如果有一张表被加了读锁(lock tables ... read),则不能使用flush tables命令,只能使用flush tables table_name... with read lock;

flush tables table_name [,table_name] ...

关闭指定的表并清空指定表的缓存,如果该表不存在不会报错。

FLUSH TABLES WITH READ LOCK

FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK

FLUSH TABLES tbl_name [, tbl_name] ... FOR EXPORT

While any of these statements is in effect within thesession, attempts to use FLUSH TABLES ... FOR EXPORT produce an error:

 

FLUSH TABLES ... WITH READ LOCK

FLUSH TABLES ... FOR EXPORT

LOCK TABLES ... READ

LOCK TABLES ... WRITE

While FLUSH TABLES ... FOR EXPORT is in effect within thesession, attempts to use any of these statements produce an error:

 

FLUSH TABLES WITH READ LOCK

FLUSH TABLES ... WITH READ LOCK

FLUSH TABLES ... FOR EXPORT

 

 

更多精彩MySQL学习资源,尽在我赢职场!

 

http://www.wyzc.com/mysql/?tg=LXUK--Zkf&tg=3006123630

 

0 0