将 PortQryUI 工具与 SQL Server

PortQry 是一种命令行工具,可用于帮助排查 TCP/IP 连接问题。 该工具报告本地或远程计算机上目标 TCP 和用户数据报协议 (UDP) 端口的状态。 PortQryUI.exe 使你能够使用 UI 而不是 PortQry 的命令行。

本文讨论在排查影响 Microsoft SQL Server的连接问题时如何使用 PortQryUI 工具。 有关 PortQry 命令行工具的详细信息,请参阅 使用 PortQry 命令行工具

注意

由于 PortQryUI 旨在用作故障排除工具,因此应充分了解计算环境,以便能够有效地使用该工具。

关于 PortQryUI 工具

PortQryUI 工具可帮助你执行以下任务:

  • 解决 TCP/IP 连接问题。
  • 显示本地或远程计算机上的 TCP 和 UDP 端口的状态。
  • 排查影响SQL Server的各种连接问题。

可以从 Microsoft 下载中心下载 PortQryUI 工具:

PortQryUI - PortQry 命令行端口扫描程序的用户界面

使用 PortQryUI 工具

若要解决计算机或远程计算机上的连接问题,请执行以下步骤:

  1. 在遇到连接问题的客户端计算机上启动 PortQryUI () 。

  2. “输入目标 IP 或 FQDN 进行查询”框中,指定要了解其端口状态的计算机的 IP 地址或 FQDN 名称。

  3. 选择“ 查询预定义服务”,然后选择“ SQL 服务”。 计算机上的端口按其用于的服务类型进行分组。 可以按服务类型进行查询。 预定义的服务如下所示:

    • 域和信任
    • DNS 查询
    • NetBIOS 通信
    • Ipsec
    • SQL 服务
    • WEB 服务
    • Exchange Server
    • Netmeeting 和其他服务
  4. 指定信息后,选择“查询”,然后检查输出。 有关如何解码 PortQryUI 工具显示的输出的详细信息,请参阅SQL Server连接问题的可能原因和建议的解决方法部分。

注意

如果对基于 SQL Server 的计算机具有管理员访问权限,则可以在该计算机上下载并运行 SQL 连接设置检查工具,并结合下一部分查看输出。

SQL Server连接问题的可能原因和建议的解决方法

实例类型:默认实例

PortQry 的输出TCP port 1433 (ms-sql-s service): NOT LISTENING

可能的原因:此问题可能有以下任一原因:

  • SQL Server尚未启动。
  • 未在SQL Server协议列表中启用 TCP/IP。
  • SQL Server侦听非默认端口 (检查 错误日志) 。
  • 客户端和服务器之间的防火墙正在阻止端口。

建议的解决方法:尝试以下解决方法:

  • 确保已启动SQL Server。
  • 确保在SQL Server网络配置中为服务器实例启用了 TCP/IP。
  • 检查SQL Server错误日志中的端口号。 在连接字符串中以 servername\portnumber 格式使用该名称。
  • 请与网络或 Windows 管理员联系,确保 TCP 端口 1433 (或当前配置的SQL Server端口) 不受网络上的防火墙或SQL Server系统上的 Windows 防火墙的阻止。 若要将 Windows 防火墙配置为与 SQL Server 实例协同工作,请参阅配置 Windows 防火墙

实例类型:默认实例

PortQry 的输出TCP port 1433 (ms-sql-s service): LISTENING

可能的原因:此问题表示客户端库可以连接到基于 SQL Server 的计算机,但应用程序层中的其他原因可能会导致此问题。

建议的解决方法:尝试以下解决方法:

  • 检查是否在连接字符串中正确指定了服务器名称。 如果连接字符串使用端口号,请确保正确指定。
  • 如果连接字符串使用端口号,请确保将其设置为正确的值。 请确保在客户端计算机上未定义旧别名。
  • 在客户端系统上SQL Server客户端网络实用工具 (Cliconfg.exe) 的 SQL Server 配置管理器 或 “别名” 选项卡上检查 SQL Server 实例是否存在别名。

实例类型:命名实例

PortQry 的输出UDP port 1434 (ms-sql-m service): FILTERED

可能的原因:此问题可能有以下任一原因:

  • SQL Server命名实例尚未启动。
  • SQL Server浏览器尚未在托管 SQL Server 实例的系统上启动。
  • UDP 端口 1434 被基于SQL Server的计算机或客户端与服务器之间的网络中的防火墙阻止。
  • 服务已启动。

建议的解决方法:尝试以下解决方法:

  • 启动SQL Server命名实例。
  • 尝试启动SQL Server浏览器服务。
  • 请与网络或 Windows 管理员协作,确保 UDP 端口 1434 不会被网络上的防火墙或SQL Server系统上的 Windows 防火墙阻止。 若要将 Windows 防火墙配置为与SQL Server协同工作,请参阅配置 Windows 防火墙
  • 如果无法在防火墙上打开 UDP 1434,则应将SQL Server命名实例配置为侦听静态端口,并在连接字符串中使用 servername\portnumber

实例类型:命名实例

PortQry 的输出UDP port 1434 is LISTENING

可能的原因:此问题表示客户端库可以连接到基于SQL Server的计算机。 但是,应用程序层中的其他内容可能会导致此问题。

建议的解决方法:尝试以下解决方法:

  • 请确保在连接字符串中正确指定了服务器名称和端口号。
  • 请确保客户端计算机上未定义任何旧别名。 检查SQL Server实例 SQL Server 配置管理器是否存在别名,或者SQL Server客户端网络实用工具中的“别名”选项卡 (客户端系统上 Cliconfg.exe) 。

使用 PortQryUI 工具时,连接问题可能存在不同的方案。 以下每个屏幕截图都显示基于实例类型和连接是否成功的输出。 如果连接正确发生,则显示值“正在侦听”。 如果未发生连接,则显示值“已筛选”。

以下输出来自连接成功的默认端口上的默认实例。

显示连接成功的默认端口上的默认实例的屏幕截图。

如果默认端口上的默认实例连接失败,则输出将显示,如以下屏幕截图所示。

显示默认端口上默认实例连接失败的屏幕截图。

例如,如果命名实例的连接成功, (实例名称为“SQL 2014”,主机名为“SQLCONNVM”) ,则输出将如以下屏幕截图所示。

命名实例成功连接的屏幕截图。

如果命名实例的连接不成功,则会显示输出,如以下屏幕截图所示。

显示命名实例连接失败的屏幕截图。