CF10,MYSQL SQL_SELECT_LIMIT = DEFAULT

时间:2013-02-23 07:39:09

标签: mysql coldfusion coldfusion-10

我刚用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不兼容。

5 个答案:

答案 0 :(得分:16)

从上面的答案中借鉴一些更详细的信息:

我们遇到了同样的问题,并通过更新JDBC文件进行了修复。从ColdFusion 10 only supports MySQL 5.0 and 5.1开始,您需要更新上面提到的连接器。

更新Windows计算机上的JDBC连接器

  1. the link provided above
  2. 获取.zip连接器
  3. 打开zip存档并找到mysql-connector-java-5.1.23-bin.jar
  4. 将此.jar文件复制到C:\ ColdFusion10 \ cfusion \ lib \
  5. 打开服务(开始&gt;控制面板[可选]&gt;管理工具&gt;服务)
  6. 停止/启动“ColdFusion 10 Application Server”服务
  7. 要验证ColdFusion是否已识别新的.jar,请登录ColdFusion Administrator,单击“服务器设置”下的“设置摘要”。搜索“mysql”。您应该看到“CF Server Java类路径”部分下列出的.jar文件。无需重新设置数据源。这些更改应自动应用。

答案 1 :(得分:2)

根据我的理解,另一个选项应该是将JDBC驱动程序更新为latest MySQL JDBC Driver。你可以在using the latest JDBC driver here找到相关说明:(尽管说明可能有点陈旧,但它仍然可以以相同的方式工作)。

仅供参考ColdFusion 10 only supports MySQL 5.0 and 5.1

答案 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>

另一种方法是为数据源启用多个查询,但出于安全原因,不建议这样做。