我正在安装一台装有 Windows 2003 Web Edition、ColdFusion 9 和 SQL SERVER 2005 Express 的虚拟机。我已从两个文件导入并附加数据库,并且我可以从 SSMS 中正确使用它。
按照说明,我创建了一个连接到服务器 MYSERVERNAME\SQLEXPRESS 的系统 DSN,结合了 Windows 身份验证\SQL 身份验证等访问权限。我在流程结束时测试了连接,测试成功。然后我在 lanip+localhost 上启用了 TCP 连接,并将端口设置为 1433。
最后,我进入 ColdFusion 管理面板,使用 Microsoft SQL Driver 创建了一个新的 dsn,将 dsn 名称、数据库名称和服务器名称设置为 MYSERVERNAME\SQLEXPRESS。我使用了(至少目前)sa 凭据。麻烦来了:
使用 MYSERVERNAME\SQLEXPRESS 会导致 Java 异常,告诉我实例无效或未运行:
java.sql.SQLNonTransientConnectionException: [Macromedia][SQLServer JDBC Driver]The requested instance is either invalid or not running.
如果我使用 127.0.0.1\SQLEXPRESS,也会出现同样的异常。但是,如果我使用 127.0.0.1,dsn 将不会导致异常,而且我可以访问数据库,但某些查询崩溃,并告诉我(可能不是确切的错误,因为我已将其从我的母语翻译过来):
Error Executing Database Query. [Macromedia][SQLServer JDBC Driver][SQLServer]Could not login with username 'sa'.
在网上冲浪,我找到了一个教程,它告诉我下载 Microsoft sqljdbc 驱动程序并将其放在 cold fusion 的 WEB-INF 目录中,然后:
JDBC URL:jdbc:sqlserver://{服务器名称}\sqlexpress:1433
驱动程序类:com.microsoft.sqlserver.jdbc.SQLServerDriver
驱动程序名称:SQL Server 2005 JDBC
这会导致错误:
Error Executing Database Query. [Macromedia][SQLServer JDBC Driver][SQLServer]Could not login with username 'sa'.
问题可能出在哪里?如果您需要有关系统的更多信息,我会发布它们,请告诉我。
答案1
您不需要 MS 的 sqljdbc。错误只是说无法使用 sa 和密码登录。因此,只需将凭据更改为您可以使用 MS SQL Server Management 自行登录的内容即可
答案2
答案不在于 ColdFusion 的配置中,而在于网站本身,它有 2 个 Application.cfm 文件。