我刚刚安装了Coldfusion 9,现在一切正常,它通过Coldfusion管理员连接到我的MySQL数据库作为数据流,但我偶然发生这个错误,可能每天5到10次。我不知道如何重新创建它,如果你得到它并刷新页面就会消失。
Error Executing Database Query. Communications link failure Last packet sent to the server was 0 ms ago
该错误正在被coldfusion捕获,因为它显示了一条用户友好的消息,并通过电子邮件向我发送问题。
几乎所有的页面加载和工作都很好,而这个问题只发生在从CFMX7到CF9,都是使用MySQL。
我使用的MySQL版本是“5.0.77”
我已尝试将localhost和127.0.0.1作为数据源中的主机,但没有区别。
有谁知道这是什么以及如何解决?我已经看过一些类似的Java帖子,但是我没有看到如何将修复翻译成Coldfusion?无论如何它可能是MySQL或Apache问题吗?
编辑:我昨天上午11点(11日)未经检查保持连接,此后没有出现错误。通常我每天得到3-10个,所以这看起来很有希望。我会等到明天再确认它是固定的。我在5.0.77上使用MySQL 4/5驱动程序答案 0 :(得分:5)
此问题已在Adobe论坛中讨论过。似乎合适的解决方法是在ColdFusion数据源定义中启用验证查询,例如“Select 1
”(不带引号)。 ColdFusion将在让页面请求使用该数据库连接之前运行该简单查询来测试每个连接。这将保证在应用程序中使用之前每个数据库连接都是好的。
答案 1 :(得分:1)
除非您将Apache Tomcat作为ColdFusion的servlet引擎,否则Apache不会成为您的问题。 Apache HTTPD无法导致这种情况。
看起来这似乎是JDBC Connector和MySQL之间的错误。你能告诉我你在哪个版本的mysql吗?
答案 2 :(得分:0)
根据Steven Erat给出的解决方案,将验证查询添加到数据源为我解决了同样的问题。
我只想补充一点,您需要确保添加“SELECT 1”查询并选中查询上方的“启用连接验证”复选框。
我错过了检查几个数据源上的方框,问题又回来了......(笑)