MySQL Error number: MY-010908; Symbol: ER_BINLOG_UNSAFE_MESSAGE_AND_STATEMENT; SQLSTATE: HY000

文档解释

Error number: MY-010908; Symbol: ER_BINLOG_UNSAFE_MESSAGE_AND_STATEMENT; SQLSTATE: HY000

Message: %s Statement: %s

MY-010908,ER_BINLOG_UNSAFE_MESSAGE_AND_STATEMENT,HY000,这个错误是指MySQL出现了一条不安全的 binlog 条目,在开启了binlog的情况下,执行的SQL语句不合法,不能被写入到Binlog中。

错误说明:

这个错误是由MySQL在开启Binlog后,检测到执行的SQL语句可能会对MySQL的安全造成危害,因此MySQL拒绝了这条语句的执行。比如禁用binlog_row_image 解析报错等等,这些操作会影响Binlog的安全性所以会被中止。

常见案例

1. 用户在开启Binlog时,执行把Binlog设置为非安全模式,会导致该错误出现;

2. 用户在开启Binlog时,语句中带有特殊格式函数,引起该错误;

3. 尝试对binlog_row_image 这个选项进行解析时,也可能出现该错误;

4. 语句中同时存在多条危险语句,比如COPY、ALTER TABLE ESCAPE等,也可能会引发该错误。

解决方法:

1. 重新设置Binlog为安全模式;

2. 将语句中的特殊格式函数替换掉或者转义;

3. 不对binlog_row_image进行操作;

4. 删除或修改包含危险语句的语句;

5. 访问MySQL官方文库,获得更多解决方案。

你可能感兴趣的