【发布时间】:2018-02-02 21:01:19
【问题描述】:
当我尝试使用服务器名称为 [ XX.XXX.XXX.XXX,1433\MyServerName ] 的 MS Management Studio 从远程计算机连接到 SQL 数据库时收到以下消息/strong> 和 SQL 身份验证:
无法连接到 XX.XXX.XXX.XXX,1433\MyServerName。
附加信息: 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP 提供者,错误:0 - 等待操作超时。)(Microsoft SQL Server,错误:258)
等待操作超时
我做了以下事情:
- SQL Management Studio 的“服务器属性”窗口中允许远程连接
- 将服务器计算机配置为具有静态 IPv4/DNS 地址。
- 在 SQL 配置管理器中启用 TCP/IP(在 SQL Server 网络配置中)
- 在 TCP/IP 属性中,调整 [ 协议 -> 全部监听 -> 否 ] 并将 IP[1-8] 设置为 TCP 端口 1433,将 IPAll 端口设置为 1433(TCP 动态端口留空)
- 在 Windows 防火墙中为 TCP 1433、UDP 1434 端口设置入站/出站启用连接(域、公共、私有)规则(应该没有区别,因为指定了端口),服务可执行文件:C 中的 sqlbrowser.exe :\Program Files (x86)\Microsoft SQL Server\90\Shared (我认为没有使用,因为指定了端口)和 C:\Program Files\ 中的sqlservr.exe Microsoft SQL Server\MSSQL13.MyServerName \MSSQL\Binn
- 在服务器端路由器中将 NAT 操作设置为端口 1433 (TCP)、1434 (UDP)(同样,应该无关紧要)到服务器的本地 IPv4 地址和端口 1433、1434。
- 确保 SQL 服务正在运行,端口已打开并正在侦听服务器计算机。
我可以使用带有 PC 名称或机器本地 IPv4 的 Windows 或 Sql 凭据连接到服务器机器上的数据库。
有趣的是,当>telnet XX.XXX.XXX.XXX 1433 运行时,失败大约需要 10-12 秒(无法打开与主机的连接,端口 1433:连接失败),但我可以查看到达路由器本身的 2 个数据包。与使用 SQL 管理器登录相同 - 数据包到达路由器,但服务器机器拒绝(不解析?)连接,或者它甚至没有到达机器。
感谢您的建议。
使用的版本:
- MS SQL Server 2016 Express、MS SQL Management Studio 17、SQL Server 2016 配置管理器、Windows 10 专业版。
【问题讨论】:
标签: sql-server tcp