无法远程访问SQL Server 2008 R2的实例

时间:2012-02-28 08:57:51

标签: sql-server sql-server-2008 tcp remote-access

即将出现一个非常神秘的问题:P

我有一台配置了静态IP的服务器。我已经安装了带有附加实例(ITAPP)的SQL Server 2008 R2。现在当我使用IP访问SQL Server后,发生了以下事情:

客户端计算机:

sqlcmd -S XXX.XXX.XXX.XXX -U sa -P mypass

成功连接....

但是当我使用时:

sqlcmd -S XXX.XXX.XXX.XXX\ITAPP -U sa -P mypass
  

HResult 0xFFFFFFFF,级别16,状态1 SQL网络接口:错误   找到指定的服务器/实例[xFFFFFFFF]。

     

Sqlcmd:错误:Microsoft SQL Native Client:发生错误   在建立与服务器的连接时。

     

连接到SQL Server 2005时,此故障可能是由   事实上,在默认设置下SQL Server不允许远程   连接..

     

Sqlcmd:错误:Microsoft SQL Native Client:登录超时已过期。

即使在使用SQL Server Management Studio的同一台计算机上(安装了SQL Server)。我在两台机器上都放了防火墙,甚至允许ITAPP(共享内存,命名管道,TCP / IP)的所有协议,也将Allow Remote connection设置为true。

当我使用127.0.0.1\SQLITRAX在服务器计算机上连接时,它会立即连接。

请帮我解决这个烂摊子:)

2 个答案:

答案 0 :(得分:16)

也许是因为它是远程服务器上的命名实例 命名实例不使用SQL Server标准Tcp-port 1433,只有默认(未命名)实例使用1433端口。
任何其他“命名”实例只是听另一个端口 因此,您应该检查SQL端口正在侦听的SQL-Server配置程序,然后告诉客户端连接到此端口。
假设您的命名实例正在侦听12345端口,那么客户端应使用以下命令进行连接

sqlcmd -S XXX.XXX.XXX.XXX,12345 -U sa -P mypass

指定TCP端口时,则不需要实例的名称 在我的理解中,实例的名称是SQL Server服务查找此命名实例正在侦听的TCP端口的一种方式 但为此,您的客户端需要能够访问解析SQL Server实例名称的其他服务(可能是Sql Server Agent / SQL Server浏览器,但我不确定)

<强>更新
这是一个屏幕截图,显示了为SQL Server命名实例设置TPC端口的位置。 How to check the TPC listening port of a SQL Server named instance

那么,哪个TCP端口是您命名的SQL Server侦听实例?

答案 1 :(得分:3)

需要能够访问SQL Server Browser服务才能连接到命名实例。

有关其功能以及在防火墙上打开的端口的更多信息,请参阅this article

这个technet article提供了一个方便的脚本来打开所有必需的端口