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官方文库,获得更多解决方案。