我在 Vista Ultimate x86 上运行了 MS SQL Server 2005(默认实例)和 SQL Server 2008(命名实例)。
我可以在本地毫无问题地连接这两个实例,但是当我尝试从另一个实例连接它们时网络- 没有运气。SQL Server 2005 运行良好,但我无法连接到 SQL Server 2008。
我在 SQL Server 2008 上启用了 TCP/IP 和命名管道,并且允许远程连接。
我是否遗漏了什么?
附言:我将动态端口更改为 1444。我似乎没有找到通过 MS SQL Management Studio 连接到命名实例时指定端口号的方法。
聚苯硫醚:从 SSMS 2008 连接。
更多信息:
我还在防火墙和路由器上打开了 TCP 1444。我想不出其他方法了。
更新:
以下工作:
- 使用 ServerName 从同一台机器进行连接,无需任何端口
- 使用 ServerName 连接同一子网,无需任何端口
- 使用本地 IP(192......)从同一子网进行连接,无需任何端口
以下操作无效:
- 使用外部 IP 地址(不是 192......)从同一子网进行连接,无需任何端口
- 使用外部 IP 地址(不是 192...)从不同的网络连接,无需任何端口
解决方案:
事实证明问题出在路由器端口转发设置上,我将自定义端口转发到默认端口......呃......
我把这个问题解决了重新表述问题。
谢谢大家的帮助。
答案1
确保 SQL 浏览器已启用并正在运行。它可能已被禁用或停止。
还要确保实例配置为允许远程连接。
答案2
可能需要打开 SQL Server 配置管理器 打开 SQL Native Client 配置 检查客户端协议 - 应启用 TCP/IP 检查别名 - 为 TCP/IP 协议定义新别名
对于 SQL 服务器的不同命名实例,别名应该不同
另请参阅知识库文章
另外,我的问题是您真的需要使用 TCP/IP 吗?我不确定 Vista 是否支持,因为从未安装过,但在 Win 2003 服务器上,我设置了服务器和所有客户端通过命名管道工作。
答案3
要连接到另一个端口上的 SQL Server,请尝试执行 192.168.1.1,1444\INSTANCENAME(其中 192.xxxx 是您的 IP,1444 是备用端口,InstanceName 是您的实例的名称)。
答案4
当服务器上有多个版本时,我们使用两个连接字符串之一:
- 111.111.111.111\InstanceName(其中实例名称因版本而异)
- 111.111.111.111,端口号\实例名称
哪种方法有效取决于服务器的具体配置。由于我只连接这些,所以我不知道连接字符串有什么区别。