Error number: MY-010801; Symbol: ER_EVENT_ERROR_CREATING_QUERY_TO_WRITE_TO_BINLOG; SQLSTATE: HY000
Message: Event Error: An error occurred while creating query string, before writing it into binary log.
。
错误说明
ER_EVENT_ERROR_CREATING_QUERY_TO_WRITE_TO_BINLOG,MYSQL的错误,该错误的完整格式为:Error:MY-010801;符号:ER_EVENT_ERROR_CREATING_QUERY_TO_WRITE_TO_BINLOG;SQLSTATE:HY000。这个错误表明在定义一个event时,Mysql尝试在binlog中创建一个查询,但查询本身出现了错误。
常见案例
此错误通常发生在:
1.active_query_logging_events变量被设置为0(关)。
2.指定了一个不允许的binlog-format值(如row、mixed等)。
3.在binlog-rows-query-log-events变量被设置为on,但同一个my.cnf或同一MySQL服务中,另一个binlog-format变量仍被设置为statement之后,每个query_log_event中的log_event的flags值不支持binary格式。
解决方法
1.首先,检查设置,看active_query_logging_events变量是否被设置为1(启):
SHOW VARIABLES LIKE ‘active_query_logging_events’
假如没有被设置,则使用:
SET active_query_logging_events = 1
2.接着,检查binlog_format,看是否存在这些特殊的值:row或者mixed:
SHOW VARIABLES LIKE ‘binlog_format’;
一旦你发现这两个值,你应当改用STATEMENT,即:
SET binlog_format = ‘STATEMENT’;
3.最后,检查binlog_rows_query_log_events变量,看它是否被设置为on以及binlog_format是否被设置为statement:
SHOW VARIABLES LIKE ‘binlog_rows_query_log_events’;
如果你发现了它被设置为on,则将它设置为off:
SET binlog_rows_query_log_events = 0;