Error number: MY-010864; Symbol: ER_BINLOG_WARNING_SUPPRESSED; SQLSTATE: HY000
Message: The following warning was suppressed %d times during the last %d seconds in the error log
MY-010864(ER_BINLOG_WARNING_SUPPRESSED)错误是 MySQL 的一种具有警告性质的错误,这种错误在有表示在设置和当前会话有重要变化时显示,主要特征是记录在 binlog 中,但由于某种形式的警告而被忽略。
错误说明:
ER_BINLOG_WARNING_SUPPRESSED 错误指出一个警告,因为它被忽视而未记录到 binlog 中,所以其中的某个设置或请求可能没有执行。此外,常见的问题是 binlog_error_action 设置大于 WARNING 。具体来讲,当 mysql 发出警告时,为了继续执行某个请求,数据库会前段便会忽视此警告,转而执行请求,因此请求会又一次没有记录到 binlog 中,而这时就会发生此种错误。
常见的案例会发生 MY-010864 错误包括:
– 在早期版本的 MySQL 中发生一个错误, binlog_error_action 的默认值为 IGNORE,即使当警告涉及日志到 binlog 中时也被忽略;
– 在当前会话中发出警告,但SQL查询仍将被执行,即使 MySQL 发出警告而不记录到 binlog 中;
– 为了减少警告,MySQL处理程序仅记录警告,而不将警告以某种形式写入 binlog 中。
解决方法:
– 停止服务并检查发生错误的查询,以确定错误是否是由于 binlog_error_action 设置大于 WARNING 导致的;
– 检查此变量是否已更改,如果已更改,则修正为正确的值:WARNING;
– 由于 binlog_error_action 现阶段仍然处于 IGNORE,因此只能手动修改,请将该变量的值设置为 WARNING;
– 检查问题是否得到解决;
– 启动 mysqld 服务并运行 SHOW BINLOG EVENTS 命令,以确定在 binlog 中有无警告信息;
– 此外,请检查是否将 SQL 查询重新写入 binlog 中,如果不是,请使用 SET sql_log_bin 命令将其开启;
– 如果警告仍然存在,请确保采取正确的措施处理问题,如可能的话。
通过完成上述步骤,即可解决 MY-010864(ER_BINLOG_WARNING_SUPPRESSED)错误。