我遇到的问题是在局域网中的A电脑(未安装数据库)想访问有数据库的B电脑(安装了SQLServer数据库)上的SQLServer数据库,结果总是显示连接不上,不能识别或则拒绝等。但是在B电脑上能够正常打开登陆SQLServer数据库,且能够用测试工具连接数据库进行数据读写。在网上寻找解决方法,发现连不上局域网中的数据库原因有很多,除去局域网络问题外总结来看主要是SQLSERVER数据库设置问题和网络防火墙问题。
一:SQLServer数据库设置问题。
1:网上好多教程贴,大概步骤就是打开SQL Server2005外围应用配置器---> 服务和连接的外围应用配置器,弹出窗体,如下图所示,在左侧展开组件,找到远程连接,在右侧选择【本地连接和远程连接】以及【同时使用TCP/IP和named pipes】选项。确定即可。
2:桌面---> 右键点击此电脑---->管理打开界面---->服务和应用程序----> SQLServer配置管理器设置,具体可参照我之前的博文设置启用即可。
二:网络防火墙问题或者1433端口问题造成的
针对我出现的问题,我在需连接SQLServer数据库的B电脑上用测试工具链接时报错如下
出现这种情况就是连接不上对方的数据库。于是在A电脑上使用cmd命令 telnet 192.168.1.*** 1433 来检测IP为192.168.1.*** 的B电脑上的1433端口是否正常,结果报错如下,说明B电脑上1433端口有问题。这时就可以将问题先锁定在B电脑1433端口问题上(1433端口是SQL Server默认的端口,SQL Server服务使用两个端口:TCP-1433、UDP-1434。其中1433用于供SQL Server对外提供服务,1434用于向请求者返回SQL Server使用了哪个TCP/IP端口)。
2:打开B电脑cmd命令,输入netstat -an 查看端口状态,如果能够找到1433端口处于LISTENING状态,但是A电脑依旧不能连接上此电脑上的数据库时,就可以考虑是网络防火墙问题了。
3:设置网络防火墙,打开网络防火墙高级设置,如下图新建入站规则,选择端口,输入端口,允许连接,下一步下一步完成就可以了,建立好的看 往下第4张图。
4:这是在A电脑上继续用cmd命令 telnet 192.168.1.*** 1433 来检测IP为192.168.1.***的B电脑上的1433端口是否正常。如下图所示显示一个黑框框代表B电脑上1433端口正常。此时再用测试工具连接就成功了,在A电脑上能够读写B电脑SQLServer数据库中的数据表了。
好了,针对我遇到的问题和寻找解决的方法进行了一个回顾,写下来以备不时之需。其中可能有错误,欢迎大家指正。