我有一台测试机器,由于我们正在测试公司不支持的应用程序(SQL 2008 和 Server 2008),因此不允许在我们的域中使用。我想使用 Management Studio 连接到 SQL2008 服务器,但无法使其工作。我将身份验证设置为混合模式,并选中了“允许远程连接到此服务器”,但当我尝试访问它时,我收到错误
与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)(Microsoft SQL Server,错误:53)
由于它说提供程序是命名管道,我在服务器上启用了命名管道,但仍然没有成功。我尝试连接到系统名称、IP、系统名称\实例和 IP\实例,但都无济于事。我尝试做的事情不可能吗?
编辑:
好吧,通过一些基本的故障排除,我发现我无法从客户端计算机 ping 服务器,但我可以从服务器 ping 客户端计算机?它们都插入同一个交换机,并且彼此相邻。服务器上的 Windows 防火墙已打开,我需要启用一些特定设置吗?
哇!原来是防火墙阻拦了我。我如何启用防火墙并仍然保持连接?
答案1
为了跨域连接到命名实例,我总是必须创建别名为实例创建并让远程客户端使用别名进行连接。您需要确保 SQL Browser 服务正在托管 SQL Server 的服务器上运行,这样才能正常工作。
如果您连接到默认实例,则通过 IP 而不是主机名连接应该可以正常工作。
编辑:
对于防火墙,您需要默认允许 SQL 通过 TCP 端口 1433 传入流量。如果 SQL 监听的不是 1433 端口,则您需要改为允许该端口上的流量。
答案2
我跑去xp_readerrorlog
寻找服务器正在监听的端口。我从未设置过它,所以我假设它正在监听 1433,但它正在监听 49192。我在防火墙中启用了该端口,现在可以连接了。
答案3
尝试使用 ODBC 设置 DSN 来测试各种连接类型。它有时会提供更多诊断信息,并且可以轻松地在连接类型(TCP/IP、管道等)之间切换。
答案4
尝试启用 TCP/IP 连接。