无法创建与数据库的连接 (ColdFusion)
Could not create connection to database (ColdFusion)
我正在通过 ColdFusion 创建一个简单的 CRUD 应用程序。我将前往 http://localhost:8600/CFIDE/administrator/index.cfm
的 ColdFusion 管理员面板并添加一个 "New Data Source"。但是我收到以下错误:
Connection verification failed for data source: dsnMyVariable
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
The root cause was that: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
更新:
安装 MySQL 8 后,我在创建 DSN 时得到了完全相同的错误消息。这似乎是 MySQL 8 的兼容性问题。检查 System Support Matrix for ColdFusion 2016 仅显示 MySQL 5.7,因此 MySQL 8 可能不受支持或与内置 driver秒。
安装 newer JDBC driver 似乎解决了问题并允许 DSN 验证。
- 停止 ColdFusion 2016 Windows 服务
- 从 https://dev.mysql.com/downloads/connector/j/ 下载最新的 JDBC driver。目前最新版本为v8.0.11.
- 解压并复制新的 driver jar (
mysql-connector-java-8.0.11.jar
) 到目录 {cf2016_root}\wwwroot\WEB-INF\lib
找到 old MySQL driver jar 并重命名它,使其没有 .jar
扩展名.例如,将 mysql-connector-java-5.1.39-bin.jar
重命名为 mysql-connector-java-5.1.39-bin.jar.old
。 (实际位置和版本号可能会有所不同,但通常位于{cf2016_root}\lib\
)
重新启动 ColdFusion 2016 Windows 服务
最后,使用 Driver 创建一个新的 DSN Type = Other 并输入以下内容。只需将 "YourDatasourceName" 和 "YourDatabaseName" 替换为正确的值即可。
- CF 数据源名称:
YourDatasourceName
- JDBCURL:
jdbc:mysql://127.0.0.1:3306/YourDatabaseName?tinyInt1isBit=false&
- Driver Class:
com.mysql.jdbc.Driver
- Driver 姓名:
com.mysql.jdbc.Driver
- 用户名:
root
- 密码:
(your password)
没有看到您真正的 DSN 设置,这只是一个猜测,但是...验证 Server 设置是否正确。由于 MySQL 与 CF 在同一台机器上是 运行,因此输入 localhost
或 127.0.0.1
我确认输入 无效 服务器名称如 NotARealServerName(网络上没有该名称的计算机)会产生与您相同的错误当您尝试在 CF11 中验证 DSN 时看到了。
一旦你让它工作,我强烈建议 creating a separate user account,授予适当的权限,并将其与 CF DSN(而不是 "root")一起使用。
问题出在版本 mysql connector java。
我第一次使用最新版本Connector/J 8.0.11
,需要使用以前的版本Connector/J 5.1.46
。 Ageax 的建议对我帮助很大!
兼顾 MySQL 5
和 Other
驱动程序。
我正在通过 ColdFusion 创建一个简单的 CRUD 应用程序。我将前往 http://localhost:8600/CFIDE/administrator/index.cfm
的 ColdFusion 管理员面板并添加一个 "New Data Source"。但是我收到以下错误:
Connection verification failed for data source: dsnMyVariable
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
The root cause was that: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
更新:
安装 MySQL 8 后,我在创建 DSN 时得到了完全相同的错误消息。这似乎是 MySQL 8 的兼容性问题。检查 System Support Matrix for ColdFusion 2016 仅显示 MySQL 5.7,因此 MySQL 8 可能不受支持或与内置 driver秒。
安装 newer JDBC driver 似乎解决了问题并允许 DSN 验证。
- 停止 ColdFusion 2016 Windows 服务
- 从 https://dev.mysql.com/downloads/connector/j/ 下载最新的 JDBC driver。目前最新版本为v8.0.11.
- 解压并复制新的 driver jar (
mysql-connector-java-8.0.11.jar
) 到目录{cf2016_root}\wwwroot\WEB-INF\lib
找到 old MySQL driver jar 并重命名它,使其没有
.jar
扩展名.例如,将mysql-connector-java-5.1.39-bin.jar
重命名为mysql-connector-java-5.1.39-bin.jar.old
。 (实际位置和版本号可能会有所不同,但通常位于{cf2016_root}\lib\
)重新启动 ColdFusion 2016 Windows 服务
最后,使用 Driver 创建一个新的 DSN Type = Other 并输入以下内容。只需将 "YourDatasourceName" 和 "YourDatabaseName" 替换为正确的值即可。
- CF 数据源名称:
YourDatasourceName
- JDBCURL:
jdbc:mysql://127.0.0.1:3306/YourDatabaseName?tinyInt1isBit=false&
- Driver Class:
com.mysql.jdbc.Driver
- Driver 姓名:
com.mysql.jdbc.Driver
- 用户名:
root
- 密码:
(your password)
没有看到您真正的 DSN 设置,这只是一个猜测,但是...验证 Server 设置是否正确。由于 MySQL 与 CF 在同一台机器上是 运行,因此输入 localhost
或 127.0.0.1
我确认输入 无效 服务器名称如 NotARealServerName(网络上没有该名称的计算机)会产生与您相同的错误当您尝试在 CF11 中验证 DSN 时看到了。
一旦你让它工作,我强烈建议 creating a separate user account,授予适当的权限,并将其与 CF DSN(而不是 "root")一起使用。
问题出在版本 mysql connector java。
我第一次使用最新版本Connector/J 8.0.11
,需要使用以前的版本Connector/J 5.1.46
。 Ageax 的建议对我帮助很大!
兼顾 MySQL 5
和 Other
驱动程序。