我在一个盒子上有多个SQL Server 2005实例。从我桌面上的SSMS,我可以毫无问题地连接到该框的命名实例。在最近的一些网络配置更改后,当我想从桌面上的SSMS连接到默认实例时,我必须指定端口号。在网络发生变化之前,我确实不必须指定默认实例的端口号。
如果我远程到任何其他框(包括有问题的框),并使用那个框的SSMS连接到该默认实例,则成功。从我的桌面,只有我的桌面,我必须指定端口号。
我错过了SQL Server配置吗?我的电脑配置中的某些东西是否可能妨碍我?我会在哪里看,或者我可以传递给网络人员以帮助他们解决这个问题?任何帮助表示赞赏。
答案 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