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