客户端无法连接问题分析
一、局域网问题
请先检查局域网是否已经连通,
1.看ping 服务器IP能否ping通。这个实际上是看和远程sql server 2000服务器的物理连接是
否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。
附:具体ping的操作如:单击“开始”菜单,选择“运行”输入命令:“ping+服务器名或IP地址+ -t”,如所示:“ping lyl -t”回车,看黑屏窗口内有无连续信息。如果有连续信息说明正常;如果无反应则说明不同,有问题。
2.若在网上邻居访问服务器,不能访问或无法打开服务器上的共享资源,说明是局域网连接
有问题或未开放权限。
具体网络无法访问服务器的检查操作请参见附件中另外一个文件《客户端无访问服务器处理.doc》
二、防火墙的问题
请检查是否有防火墙存在,如存在请将防火墙退出或者将其级别降低。
三、端口或者协议配置问题
在确保客户端的数据库配置参数正确的情况下,您的计算机还是不能访问到数据库或者访问速度非常慢,您就考虑端口或者网络协议的问题。
在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
如telnet 192.168.0.1 1433
通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。
如果这一步有问题,应该检查以下选项。
①检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
②检查服务器端和客户端有没启用TCP/IP,Named Pipes及多协议。检查方法是,在服务器上和客户端(工作站)打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具或者在开始菜单->运
行中输入cliconfg ->确定(如图一、二),看启用的协议里是否有TCP/IP,Named Pipes及多协议,如果没有,则启用。
(图一)
安装sql server数据库没到(图二)
③检查服务器和客户端的TCP/IP端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的TCP/IP的属性,确保默认端口为1433(图三)。
(图三)
④如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。
⑤检查服务器是否在1433端口侦听。如果服务器没有在TCP连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入
netstat -a -n 或者是netstat -an,在结果列表里看是否有类似tcp 127.0.0.1 1433 listening或tcp 0.0.0.0:1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。在服务器端启动查询分析器,输入select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁(图四)。
(图四)
如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。
⑥在正常情况,客户端的网络协议不需要人工干预,但有时会出现协议不正常的情况,若客户端数据库参数配置中“数据库服务器”为服务器计算机名称,请在SQL Server客户端网络实用工具中“按顺序启用协议”设置中将“Named Pipes”放在“TCP/IP”之前。若客户端数据库参数配置中“数据库服务器”为服务器IP地址,请在SQL Server客户端网络实用工具中“按顺序启用协议”设置中将“TCP/IP”放在“Named Pipes”之前(图五)。
(图五)
四、SQL Server数据库问题
如果所有的工作站程序都不能访问数据库(包括服务器端),就应该考虑是SQL Server的问题,请检查SQL Server是否正常启动、SQL Server安装是否正确等。SQL Server安装容易出现的问题通常是由于SQL Server使用了"仅Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如tjuser )进行连接。解决方法如下所示:
①在服务器端使用企业管理器,并且选择"使用Windows 身份验证"连接上SQL Server
②展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。
③在"身份验证"下,选择"SQL Server和Windows "(图六)。
(图六)
④重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start mssqlserver启动服务,也是一种快捷的方法)。
五、访问服务器权限问题
客户端每次重启后无法连接数据库,通过网上邻居访问服务器一次,才能连接成功。
这个是windows网络访问的问题,在服务器上启用guest用户,并在服务器上建个user用户,在客户端也建立相同名称的user用户,密码也相同,客户端用建立的user用户登录。
六、连接动态库问题
程序访问SQL数据库必须的动态库
DBNETLIB.DLL 网络连接库
ntwdblib.dll 连接MSSQL数据库的驱动库
dbnmpntw.dll 命名管道连接数据库使用的DLL
dbmssocn.dll TCP/IP连接数据库使用的DLL
DBNETLIB.DLL一般放在system32系统目录下,后三者可放在system32系统目录下也可放在exe 执行程序目录下。
ntwdblib.dll有多个版本,典型的是1998.11.13.0(win98版)和2000.80.194.0(win2000版),win98系统下必须使用98版动态库,win2000或以上windows系统一般两个版本的动态库均支持,但有些系统也存在异常无法连接,请尝试替换ntwdblib.dll的两个版本文件。
七、配置连接
SQL Server客户端配置连接工具。客户端没有安装SQL Server,可从服务器system32下复制,粘贴到客户端system32下。
在开始->运行输入 windbver ->确定(图七)
(图七)
在 Net Library页面中设置 Default Netword,一般可设置为Named Pipes、TCP/IP Sockets、DBNETLIB.DLL,请尝试切换三种连接方式(图八、九)
(图八)(图九)
配置的过程就是更改注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo中的信息。
"DSQUERY"="DBMSSOCN"//连接方式TCP/IP Sockets
"DSQUERY"="DBNMPNTW"//连接方式Named Pipes
"DSQUERY"="DBNETLIB"//连接方式DBNETLIB.DLL
八、操作系统问题
如果工作站平常连接都正常,突然某一时刻都连接不正常了,有时重新启动服务器后,所有的系统就能正常使用了,请考虑服务器操作系统或SQL Server的问题,特别是如果您的服务器曾经被感染过病毒,或频繁出现过断电情况等。请重新安装SQL Server或操作系统。
如果只是某一工作站无法连接,请安装SQL Server客户端工具或重装操作系统。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。