问题
使用SQL Server Management Studio无法连接远程服务器,提示以下错误:
使用SQL Server Management Studio无法连接远程服务器,提示以下错误:
使用te.Net 连接1433端口,报告连接失败,应该是网管封了1433端口。
解决
使用其它可用端口,方法是
使用其它可用端口,方法是
1、在服务器上打开SQL Server Configuration Manager。选择SQL Server配置管理器->SQL Server 2005网络配置->MSSQLSERVER的协议->TCP/IP,在弹出对话框中选择IP地址->IPALL->TCP端口,设置为可用端口。
2、在同一程序中,选择SQL Server配置管理器->SQL Server 2005 服务->SQL Server (MSSQLSERVER),右键菜单中选择重新启动。
3、在客户端登录框的服务器名称中输入:IP,端口
4、连接成功。
今天连接机房服务器的SQL Server 2005时出现错误,错误信息如下:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (.Net SqlClient Data Provider)
一般出现这种情况有几种可能:
- 服务器地址不正确或或网络不正常
- Sql Server服务器上没有启用远程连接,这种可以性最大
- 端口被其它程序占用
根据判断,于是打开开始菜单——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服务器,问题解决。
当我们发现问题后,首先应该判断出现这个问题的几种可能性,然后尝试用排除法对可能性进行排查,就象这个问题,用telnet可以检查是否端口是否有问题,而用netstat -n可能检查是本地还是服务器的端口有问题。当我们知道是端口被封住了,问题就好解决了,因为端口被封住无非就两种可能性,一是防火墙之类的软件堵住了端口;另一种可能性是被其它软件占用了端口。我以前就碰到一个端口被占用的情况,IIS死活起不来,折腾了好久才发现,80端口被Skype占用,更改Skype的设置重启就解决问题了,走了不少的弯路。
建议在遇到这个问题的时候可以尝试用telnet命令看服务器及端口是否连通正常。
引用地址:
http://cm186man.blog.51cto.com/213593/40749