Microsoft JDBC Driver for SQL Server 需要安装并运行 TCP/IP 以与 SQL Server 数据库进行通信。可以使用 SQL Server 配置管理器检查已安装了哪些网络库协议。
数据库连接失败的原因有多种。包括下列原因:
SQL Server 无法启用 TCP/IP,或者指定的服务器或端口号不正确。验证 SQL Server 是否正通过指定服务器和端口上的 TCP/IP 进行侦听。系统可能会报告类似“登录已经失败。对主机的 TCP/IP 连接已失败。”的异常。这指示下列内容之一:
已安装了 SQL Server,但并没有针对 SQL Server 将 TCP/IP 作为网络协议进行安装(通过使用 SQL Server 2000 的 SQL Server 网络实用工具,或者使用 SQL Server 2005 和更高版本的 SQL Server 配置管理器)。
已作为 SQL Server 协议安装了 TCP/IP,但是它并没有侦听 JDBC 连接 URL 中指定的端口。默认端口为 1433,但可以在安装产品时将 SQL Server 配置为侦听任意端口。确保 SQL Server 正在侦听端口 1433。或者,如果端口已更改,则应确保 JDBC 连接 URL 中指定的端口与更改的端口相匹配。有关 JDBC 连接 URL 的详细信息,请参阅创建连接 URL。
JDBC 连接 URL 中指定的计算机地址没有引用在其中安装并启动了 SQL Server 的服务器。
无法执行客户端和运行 SQL Server 的服务器之间的 TCP/IP 的网络操作。可以使用 telnet 检查 TCP/IP 与 SQL Server 的连接性。例如,在命令提示符下,键入 telnet 192.168.0.0 1433 ,此处 192.168.0.0 是运行 SQL Server 的计算机地址,而 1433 是其侦听的端口。如果收到“Telnet 无法连接”的消息,则 TCP/IP 没有侦听 SQL Server 连接的端口。使用 SQL Server 网络实用工具(对于 SQL Server 2000)或 SQL Server 配置管理器(对于 SQL Server 2005 和更高版本),以确保将 SQL Server 配置为在端口 1433 上使用 TCP/IP。
未在防火墙中打开服务器使用的端口。这包括服务器使用的端口或与该服务器的指定实例相关联的端口(可选)。
指定的数据库名称不正确。确保所登录的 SQL Server 数据库是现有的数据库。
用户名或密码不正确。确保提供正确的值。
使用 SQL Server 身份验证时,JDBC 驱动程序要求安装带有 SQL Server 身份验证的 SQL Server,但在默认情况下,系统不会安装带有此功能的组件。在安装或配置 SQL Server 实例时,应确保带有此选项。