get error cannot execute statement:无法写入二进制日志,因为binlog\u format=statement

4c8rllxm  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(467)

我有一个本地开发服务器,在那里我测试了几乎所有的quartz功能(scheduling/execution/e.t.c),其中mysql设置log\u bin=off当我在我的暂存服务器(log\u 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\u format=statement并且至少有一个表使用了仅限于基于行的日志记录的存储引擎。当事务隔离级别为read committed或read uncommitted时,innodb仅限于行日志记录。-->mysql.data.mysqlclient.mysqlexception:cannot execute statement:无法写入二进制日志,因为binlog\u format=statement,并且至少有一个表使用了仅限于基于行的日志记录的存储引擎。当事务隔离级别为read committed或read uncommitted时,innodb仅限于行日志记录。
深入研究后,我发现这是由于binlog\u format=statement
无论如何,我可以用上面的设置工作(意思是把binlog\u格式变成混合格式)

zf9nrax1

zf9nrax11#

根据mysql论坛的建议,我修改了binlog\u format=mixed并开始工作。我进一步建议的是,在mysql对quartz的使用中应该注意,如果logbin设置为on,那么binlogu格式应该设置为mixed

相关问题