我刚用mysql 5.6设置了CF10,win2008,IIS 7.5。但是我们收到了这个错误:
Error Executing Database Query.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT
当我明确地为查询设置“LIMIT”时,会删除此错误。
(从评论中更新)
以下是一个例子:
<cfquery name="dds" datasource ="#Request.Datasource#">
SELECT *
FROM tblaccounts
LIMIT 100
</cfquery>
据我的研究显示,它与新版本的mysql 5.6不兼容。
答案 0 :(得分:16)
从上面的答案中借鉴一些更详细的信息:
我们遇到了同样的问题,并通过更新JDBC文件进行了修复。从ColdFusion 10 only supports MySQL 5.0 and 5.1开始,您需要更新上面提到的连接器。
更新Windows计算机上的JDBC连接器
要验证ColdFusion是否已识别新的.jar,请登录ColdFusion Administrator,单击“服务器设置”下的“设置摘要”。搜索“mysql”。您应该看到“CF Server Java类路径”部分下列出的.jar文件。无需重新设置数据源。这些更改应自动应用。
答案 1 :(得分:2)
根据我的理解,另一个选项应该是将JDBC驱动程序更新为latest MySQL JDBC Driver。你可以在using the latest JDBC driver here找到相关说明:(尽管说明可能有点陈旧,但它仍然可以以相同的方式工作)。
答案 2 :(得分:1)
非常感谢Clark - 我们在CF9上遇到了同样的问题
这实际上也适用于CF9。 然后步骤3:将此.jar文件复制到C:\ ColdFusion9 \ lib \ Step3a重命名旧驱动程序mysql-connector-java-commercial-5.1.11-bin.jar.old 否则司机可能会发生冲(之前发生过)
更新后,错误似乎消失了。 :)
答案 3 :(得分:1)
现在,ColdFusion 10更新11支持MySQL 5.6,详情请参阅:http://helpx.adobe.com/coldfusion/kb/coldfusion-10-update-11.html
答案 4 :(得分:0)
MySQL很久以前就弃用了SET OPTION
,请参阅docs,并在5.6中将其删除
您需要在没有OPTION语句的情况下使用SET,
SET SQL_SELECT_LIMIT = 100;
会做你想做的事。
请注意,这会为单个连接设置默认值。要确保后续查询使用相同的连接,请将它们包装在<cftransaction>
<cftransaction>
<cfquery name="tmp" datasource ="#Request.Datasource#">
SET SQL_SELECT_LIMIT = 100;
</cfquery>
<cfquery name="dds" datasource ="#Request.Datasource#">
SELECT *
FROM tblaccounts;
</cfquery>
</cftransaction>
另一种方法是为数据源启用多个查询,但出于安全原因,不建议这样做。