连接性疑难解答

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 实例时，应确保带有此选项。

# 请参阅

诊断与 JDBC 驱动程序有关的问题
通过 JDBC 驱动程序连接到 SQL Server
发送有关本主题的反馈至 Microsoft。

© 2012 Microsoft。保留所有权利。