1

使用 save() 时,我在带有 CFWheels 的 Railo 上收到以下错误:

无法执行语句:由于 BINLOG_FORMAT = STATEMENT 并且至少一个表使用仅限于基于行的日志记录的存储引擎,因此无法写入二进制日志。当事务隔离级别为 READ COMMITTED 或 READ UNCOMMITTED 时,InnoDB 仅限于行日志记录。

这是我的代码:

<cfset params.vote['voteUserID'] = params.link.linkUserID />
<cfset params.vote['voteLinkID'] = params.link.linkID />
<cfset params.vote['voteType'] = 1 />

<cfset vote = model("vote").new(params.vote) />
<cfset vote.save() />

知道发生了什么吗?我有另一个类似的插入语句,它工作正常。我怀疑这与我的数据库表中的设置有关?我正在使用 MySQL。

谢谢。

4

2 回答 2

2

您是否在此特定环境中使用复制?看起来该BINLOG_FORMAT设置与复制有关。

我建议查找BINLOG_FORMATMySQL 中设置的位置,研究各种选项是什么,并将其更改为适合您的场景的内容。

请参阅此 SO 答案:为什么我会得到“无法进行二进制日志记录”。在我的 MySQL 服务器上?

于 2012-07-20T11:46:40.153 回答
0

好的,所以似乎将数据库表上的存储引擎从“InnoDB”更改为“MyISAM”解决了这个问题。也许出于某种原因,CFWheels 不能很好地与“InnoDB”配合使用;也许有人可以添加评论为什么会这样?

于 2012-07-19T20:22:23.020 回答