我正在运行 64 位 SQL Server 2008,当我尝试从另一台计算机上的 32 位 SQL Server Management Studio 访问该实例时,出现了以下错误:
“与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:SQL 网络接口,错误:26 - 定位指定的服务器/实例时出错)(Microsoft SQL Server,错误:-1)”
我已确保以下几点:
a. 没有防火墙问题(因为它在我们的局域网内,并且所需的端口是开放的)
b. SQL Browser 服务已在两台计算机上运行
c. 服务器计算机上已启用 TCP/IP 和命名管道协议。
d. 没有网络问题,因为我可以 ping 服务器
我还遗漏了什么吗?提前感谢您的指导。
答案1
- 检查 SQL Server 错误日志以确保它正在监听 TCP 端口。如果出现错误,则需要重新启动 SQL Server。
- 在运行 SQL Server 的服务器上,从命令行执行 netstat -ano 并查找 TCP 端口。确保它处于监听状态。将该端口的给定 PID 与 SQL Server 的 PID 进行比较。它们应该匹配。如果不匹配,则需要重新启动 SQL Server。
- 检查运行 SQL Server 的服务器上的防火墙(不是硬件防火墙,而是 Windows 防火墙)。确保端口未被阻止。如果被阻止,请重新配置防火墙。
- 尝试通过 telnet 连接到服务器和端口服务器 港口。例如,如果 9999 是其监听的端口,则为 MySQLServer 9999。如果这不起作用,请让网络人员进行跟踪。查看是否正在建立 TCP 会话等。
- 如果一切正常,请尝试使用以下方法通过 SSMS 进行连接服务器,港口。例如,MySQLServer,9999。
- 如果可行,请尝试停止并重新启动 SQL Server 上的 SQL Server Browser 服务。然后尝试使用 ServerName\InstanceName 进行连接。我曾见过 SQL Server 已启动并监听端口的情况,但出于某种原因,SQL Server Browser 无法正常响应。
答案2
这里还有一些建议:
- 确保客户端的 SQL Native Client 配置上也启用了 TCP/IP。
- 确保服务器上已启用远程连接
- 您是否尝试连接到服务器上的默认实例或命名实例?
要在工作站上配置 SQL Native Client:
- 打开 SQL Server 配置管理器
- 展开 SQL Native Client 配置
- 单击客户端协议
- 启用协议并根据需要设置其使用顺序
要在您的服务器上启用远程连接(通过 SSMS):
- 右键单击您的服务器实例并获取属性
- 点击菜单中的连接
- 确保选中允许远程连接到此服务器
- 重启实例
答案3
根据 Brian 的解决方案,我已验证并发现端口号 1433 被 Windows 防火墙阻止。我已将其添加到例外中,现在连接正常。问题已解决。感谢您的解决方案。