如果没有指定端口号,ssms无法连接到默认的sql server实例

时间:2010-04-30 15:11:45

标签: sql-server sql-server-2005 networking ssms

我在一个盒子上有多个SQL Server 2005实例。从我桌面上的SSMS,我可以毫无问题地连接到该框的命名实例。在最近的一些网络配置更改后,当我想从桌面上的SSMS连接到默认实例时,我必须指定端口号。在网络发生变化之前,我确实必须指定默认实例的端口号。

如果我远程到任何其他框(包括有问题的框),并使用那个框的SSMS连接到该默认实例,则成功。从我的桌面,只有我的桌面,我必须指定端口号。

我错过了SQL Server配置吗?我的电脑配置中的某些东西是否可能妨碍我?我会在哪里看,或者我可以传递给网络人员以帮助他们解决这个问题?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

端口1434在该行的某处被阻塞,用于将实例名称解析为端口号。

如果指定端口号,则忽略实例名称...

SQL Server Browser service listens on port 1434

  

启动时, SQL Server Browser   启动并声明UDP端口1434 。 SQL   服务器浏览器读取注册表,   标识SQL Server的所有实例   在计算机上,并注意到端口   和他们使用的命名管道。当一个   服务器有两个或多个网卡,   SQL Server Browser返回第一个   它遇到SQL的启用端口   服务器。 SQL Server Browser支持[原文如此]   ipv6和ipv4。

     

当SQL Server客户端请求SQL时   服务器资源,客户端网络   库发送UDP消息给   服务器使用端口1434. SQL Server   浏览器使用TCP / IP端口响应   或请求的命名管道   实例。上的网络库   客户端应用程序然后完成   通过发送请求连接到   服务器使用端口或命名管道   期望的实例。

评论后编辑:

本地客户端设置默认是什么?它当然应该是1433,但如果没有,那么只有servername不起作用。

启动“SQL Server配置管理器”..“SQL本机客户端配置”..“客户端协议”..双击tcp / ip,本地PC使用的默认端口就在那里。

答案 1 :(得分:0)

我已经在打开防火墙的Windows 2008/7 / Vista盒子上看到过这种情况。使用命名实例不起作用,但指定端口。对我来说,修复是为SSMS和DTExec设置防火墙规则以允许正常连接。这样做的脚本如下,但您可能需要将补丁更改为SSMS和DTExec。

rem SSMS
netsh advfirewall firewall add rule name=SQL-SSMS dir=in action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" enable=yes profile=domain
netsh advfirewall firewall add rule name=SQL-SSMS dir=out action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" enable=yes profile=domain

rem DTExec
netsh advfirewall firewall add rule name=SQL-DTExec dir=in action=allow program="D:\Apps\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain
netsh advfirewall firewall add rule name=SQL-DTExec dir=out action=allow program="D:\Apps\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain

rem DTExec32
netsh advfirewall firewall add rule name=SQL-DTExec32 dir=in action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain
netsh advfirewall firewall add rule name=SQL-DTExec32 dir=out action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain