我有一个本地开发服务器,在那里我测试了几乎所有的quartz功能(调度/执行/e.t.c),其中mysql设置log_bin = off当我在我的登台服务器(log_bin= on)上部署相同的脚本时,我得到了以下错误。
JobStoreTX.Log Failure occurred during job recovery: Couldn't recover jobs: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.Quartz.JobPersistenceException:无法恢复作业:无法执行语句:无法写入二进制日志,因为BINLOG_FORMAT =语句,并且至少有一个表使用限于基于行的日志记录的存储引擎。当事务隔离级别为READ COMMITTED或READ UNCOMMITTED时,InnoDB仅限于行日志记录。-> MySql.Data.MySqlClient.MySqlException:无法执行语句:无法写入二进制日志,因为BINLOG_FORMAT =语句并且至少有一个表使用的存储引擎仅限于基于行的日志记录。当事务隔离级别为READ COMMITTED或READ UNCOMMITTED时,InnoDB仅限于行日志记录。
在深入挖掘后,我发现这是由于binlog_format=Statement
无论如何,我可以使用上面的设置(意思是将binlog_format设置为混合)
发布于 2018-05-17 16:19:17
根据mysql论坛的建议,我已经更改了binlog_format = MIXED,它开始工作了。我进一步建议的是,在使用quartz的mysql时应该注意,如果log_bin设置为on,那么binlog_format应该设置为MIXED
https://stackoverflow.com/questions/50351992
复制相似问题