关于sql server2008数据库的连接的几个问题及解决办法
写在开头
不得不说给一台新的服务器配置和部署的确是个不小的工程,在这里先感谢我们的DEV焉域政同学在这方面做出的一些贡献:把安装过程极为困难的sql server2008成功安装到服务器上,并且为我们配置了java环境、安装了Eclipse。目前数据处理小组也在使用我们服务器已经安装好的sql server了。在数据库能正常使用之后,我们的爬虫理所当然地开始进行他的工作:为数据处理小组的成员提供爬取的数据。
引言
sql sever的安装困难,并且在使用前的配置都会使人发愁。在这里笔者提出程序连接上sql server可能会遇到的几个问题和他们对应的解决办法。希望以后的软工小组若遇到这些问题,能够在这里找到答案。
一、sql server的一些基础配置
首先在打开sql server management studio我们可以看到他需要我们链接到服务器:
在服务器上我们可以直接以windows身份验证进去local数据库服务器。
在pc上我们需要连接到数据库时,往往是要进行sql server身份验证来连接的,那么如何得到一个sql server的身份呢?步骤如下:
我们在服务器上以window身份验证的方式登录之后:打开对象资源管理器→安全性→登录名。即可建立或修改一个sql server的身份,建立之后在pc程序运行过程中可能会遇到一些数据库操作的权限问题,这里相信读者能够自己轻易的解决,也就不再累述了。
自此,我们就能够在pc上运行我们的程序而将所爬取的内容存到服务器上了。在程序中会有这样类似的语句:
String conURL= "jdbc:sqlserver://xxx.xxx.xxx.xxx;DatabaseName=xxx";
con=DriverManager.getConnection(conURL,"xxx","xxx");
其中第一处即要填入服务器的Ip地址,第二处填出数据库名称。第三、四处则是要填入我们刚刚建立的sql server身份验证信息了。
二、连接问题解决办法
然而,往往就是这些地方设置好后,在pc上运行程序却发现问题来了:
大多数人会存在这样的异常:
The TCP/IP connection to the host xxx.xxx.xxx.xxx, port 1433 has failed. Error: Connection timed out: connect. Please verify the connection properties and check that a SQL Server instance is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.
而这个问题往往要对多个地方修改才能解决,解决方法如下:
1.确定1433端口处于打开状态。
在cmd中键入telnet localhost 1433回车,若出现小黑屏幕则表示处于打开状态,否则需打开1433端口。
2.确保sql server的TCP/IP协议处于已启用状态。
首先打开sql server配置管理器,在sql server网络配置中确定TCP/IP协议处于已启用状态。并在其属性中确定具体的TCP/IP地址处于已启用状态,最终如图:
3.确定防火墙无阻拦
在以上两个方法后pc程序仍不能连接上数据库时,可以关闭防火墙查看是否是因为请求被服务器防火墙阻拦。验证完毕后如果是,因为危险不能一直关闭防火墙,可在防火墙高级设置中新建入站规则:
三、结语
在以上几个问题解决后我们小组的成员都能在pc上进行爬取了,能够将所爬取的数据在pc上进行处理再存入服务器的数据库,这大大提高了工作效率,为数据处理的团队提供了更多的数据基础。