×

无法链接到SQL Server远程服务器的解决

Kalet Kalet 发表于2009-03-20 12:00:14 浏览173 评论0

抢沙发发表评论

 今天连接机房服务器的SQL Server 2005时出现错误,错误信息如下:



  在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (.Net SqlClient Data Provider)
无法链接到SQL Server远程服务器的解决
 

 一般出现这种情况有几种可能:


  1. 服务器地址不正确或或网络不正常
  2. Sql Server服务器上没有启用远程连接,这种可以性最大 无法链接到SQL Server远程服务器的解决
  3. 端口被其它程序占用

  根据判断,于是打开开始菜单——Microsoft SQL Server 2005——配置工具——SQL Server 外围应用配置器,点击“服务和连接的外围应用配置器”,在右边的树状导航中选择:MSSQLSERVER——Database Engine——远程连接,在右边区域中选择“本地连接和远程链接”,然后选择“同时使用TCP/IP和named pipes”

 但我使用VNC登录服务器后发现,远程连接已经开启,说明并不是这个问题,到网上搜索了好久,给出的解决方案都是这个,但这样并不能解决问题,到底是什么问题呢?难道是是服务器的防火墙封住了端口?很有这个可能,前段时间公司的服务器总是受到DDOS攻击,网管服务器装了冰盾的防火墙,有可能是为了防止DDOS攻击,封住了端口。于是问网管有没有封锁端口,得到的答案是没有,但他也不知道怎样启用端口,看来只好自己查了。

 Sql Server使用的端口是1433,在服务器中运行netsata -n命令,发现没有端口1433被使用的情况,又在本地运行telnet命令,发现telnet是不通的,看来端口确实是不通的,但冰盾防火墙我并不会弄。

 正在没有办法的时候,突然想到,Win 2003是自带防火墙的,会不是会是它在作怪呢?在服务器上打开Win 2003自带的防火墙,发现自带的防火墙是开启的,并且例外中没有发现Sql Server 1433的端口,试着添加一个TCP/IP的1433端口,在客户端启动Sql Server,边接远程的Sql Server服务器,问题解决。
无法链接到SQL Server远程服务器的解决
 当我们发现问题后,首先应该判断出现这个问题的几种可能性,然后尝试用排除法对可能性进行排查,就象这个问题,用telnet可以检查是否端口是否有问题,而用netstat -n可能检查是本地还是服务器的端口有问题。当我们知道是端口被封住了,问题就好解决了,因为端口被封住无非就两种可能性,一是防火墙之类的软件堵住了端口;另一种可能性是被其它软件占用了端口。我以前就碰到一个端口被占用的情况,IIS死活起不来,折腾了好久才发现,80端口被Skype占用,更改Skype的设置重启就解决问题了,走了不少的弯路。


群贤毕至

访客