13.4.1.3 SET sql_log_bin 语句

SET sql_log_bin = {OFF|ON}

sql_log_bin变量控制是否为当前会话启用记录到二进制日志(假设启用了二进制日志本身)。默认值为ON。要为当前会话禁用或启用二进制日志记录,请将会话sql_log_bin变量设置为 OFFON

将此变量设置为OFF以便会话在对不希望复制到副本的源进行更改时临时禁用二进制日志记录。

设置这个系统变量的会话值是一个受限的操作。会话用户必须具有足以设置受限会话变量的权限。请参阅 第 5.1.8.1 节,“系统变量权限”

不可能 sql_log_bin在事务或子查询中设置会话值。

设置此变量OFF 可防止将 GTID 分配给二进制日志中的事务。如果您使用 GTID 进行复制,这意味着即使稍后再次启用二进制日志记录,从此时写入日志的 GTID 也不会考虑同时发生的任何事务——实际上,这些事务会丢失.

从 MySQL 5.6.22 开始,全局 sql_log_bin变量是只读的,不能修改。全局范围已弃用;希望在未来的 MySQL 版本中将其删除。在 5.6.22 之前,sql_log_bin可以设置为全局或会话变量。sql_log_bin只有在启动新会话时才会检测到全局设置 。sql_log_bin全局 设置时,以前运行的任何会话都不会受到影响 。

警告

不正确地使用sql_log_bin with a global scope 意味着在已经运行的会话中所做的任何更改仍被记录到二进制日志中,因此被复制。在全局范围内使用时要格外小心sql_log_bin ,因为上述情况可能会导致意外结果,包括复制失败。