0

我收到很多“Statement is not safe to log in statement format”。Mysql 5.6.10 中的警告,因为 BINLOG_FORMAT 格式为“ STATEMENT ”,我无法将其切换为“ MIXED ”或“ ROW ”。

我也不能使用选项在函数或存储过程使用期间关闭全局级别的警告日志记录,并且此设置在 Mysql 5.6.10 的会话级别不可用

在任何时候都不能使用以下

    SET GLOBAL LOG_WARNINGS = 0 

但是有一个 Mysql 5.6.7 的发行说明,其中提到了这些错误的减少或抑制机制,但没有指定如何使用它或系统变量名称是什么。

任何人都可以指导在哪里设置它以及如何设置它吗?

以下是 Mysql 5.6.7 发行说明

http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-7.html

复制:诸如 UPDATE ... WHERE primary_key_column = constant LIMIT 1 的语句对于基于语句的日志记录被标记为不安全,尽管这些语句实际上是安全的。在运行大量此类语句的情况下,这可能导致磁盘空间耗尽,这与记录的此类错误警告的数量有关。为了防止这种情况发生,引入了警告抑制机制。此警告抑制的作用如下:只要在任何 50 秒内生成了 50 个最新的 ER_BINLOG_UNSAFE_STATEMENT 警告超过 50 次,就会启用警告抑制。激活后,这会导致此类警告不写入错误日志;相反,对于这种类型的每 50 个警告,会在错误日志中写入一条注释,说明最后一个警告在最后 S 秒内重复了 N 次。只要最近 50 个此类警告在 50 秒或更短时间内发出,这种情况就会持续;一旦警告数量减少到低于此阈值,警告将再次正常记录。

4

1 回答 1

0

根据文档,您可以设置log-warnings=0,但请注意它也可能会抑制其他警告。

于 2015-04-16T15:44:50.283 回答