实例说明:
公司客户XX公司在换了数据库服务器后(操作系统为:WINDOWS SERVER 2003),客户端软件(C6)一直无法连接到数据库服务器,但服务器端软件(C6)可正常连接。
- 检查公司LAN是否正常,PING服务器名或IP地址一切正常。
- 在服务器上 打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里有tcp/ip协议启用.
- 建立别名、把服务器名字换成IP地址等办法全部用上,但始终和数据库无法连接。
- 此时怀疑是否SQL SERVER版本不同导致,在服务器端和客户机上装同一版本的SQL SERVER,直接用SQL客户端连接SQL服务器端,结果还是一样。
- 用WINDOWS自代的ODBC连接SQL服务器一样不行。
解决方法:
想尽一切办法无果后,开始怀疑SQL SERVER通信端口是否1433,并工作正常。
于是用以下操作方法开始执行:
第一步、打开SQL SERVER服务网络实用工具。
SQL SERVER服务网络实用工具默认端口是1433,但1433端口是否真的被打开呢,于是执行第二步操作。
第二步、分别用二个DOS工具来查看1433端口。
1、在DOS下执行 “TELNET 电脑名或IP地址 1433”。
能经过1433端口进行连接的界面
2、为了再次证实,用“netstat –an”查看1433端口是否打开。
(Netstat –an:显示所有连接和监听的端口并以数字的行式显示地址和端口号。)如果1433打开,刚下图有显示监听的1433端口。
第三步、现确定是1433端口没有打开,于是下载
- sql server 2000 sp3a补丁安装
下载地址:
WINDOWS SERVER 2003 SP1补丁。
- 在WINDOWS自代的防火墙中开放1433端口(如没有安装SP1补丁,防火墙无法编辑)。
按以上顺序步骤操作完成以后再用上面二个方法测试,测试结果1433打开。再用C6或SQL客户端连接,一切正常。
说明:
-
- Microsoft Windows Server 2003 使用时存在已知的安全弱点。为了减少计算机被某些病毒的攻击,Microsoft SQL Server 2000,MSDE 或 两者的 TCP/IP 和 UDP 网络端口被禁用。在没有安装SP1补丁时,它自代的防火墙会关闭所有的通信端口,而且用户无法自行打开端口,只有安装SP1补丁后,防火墙才处于可修改状态,注意此处是可修改,但用户没有自行打开某个端口时,所有端口还是处于关闭状态。