写在开头

  不得不说给一台新的服务器配置和部署的确是个不小的工程,在这里先感谢我们的DEV焉域政同学在这方面做出的一些贡献:把安装过程极为困难的sql server2008成功安装到服务器上,并且为我们配置了java环境、安装了Eclipse。目前数据处理小组也在使用我们服务器已经安装好的sql server了。在数据库能正常使用之后,我们的爬虫理所当然地开始进行他的工作:为数据处理小组的成员提供爬取的数据。


引言

  sql sever的安装困难,并且在使用前的配置都会使人发愁。在这里笔者提出程序连接上sql server可能会遇到的几个问题和他们对应的解决办法。希望以后的软工小组若遇到这些问题,能够在这里找到答案。

 

一、sql server的一些基础配置

  首先在打开sql server management studio我们可以看到他需要我们链接到服务器:

  

sql server2012数据库引擎一连接就无响应_TCP

  在服务器上我们可以直接以windows身份验证进去local数据库服务器。

  在pc上我们需要连接到数据库时,往往是要进行sql server身份验证来连接的,那么如何得到一个sql server的身份呢?步骤如下:

  我们在服务器上以window身份验证的方式登录之后:打开对象资源管理器→安全性→登录名。即可建立或修改一个sql server的身份,建立之后在pc程序运行过程中可能会遇到一些数据库操作的权限问题,这里相信读者能够自己轻易的解决,也就不再累述了。

  

sql server2012数据库引擎一连接就无响应_sql_02

  自此,我们就能够在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端口处于打开状态。

  

sql server2012数据库引擎一连接就无响应_TCP_03

  在cmd中键入telnet localhost 1433回车,若出现小黑屏幕则表示处于打开状态,否则需打开1433端口。

  2.确保sql server的TCP/IP协议处于已启用状态。

  首先打开sql server配置管理器,在sql server网络配置中确定TCP/IP协议处于已启用状态。并在其属性中确定具体的TCP/IP地址处于已启用状态,最终如图:

  

sql server2012数据库引擎一连接就无响应_TCP_04

  3.确定防火墙无阻拦

  在以上两个方法后pc程序仍不能连接上数据库时,可以关闭防火墙查看是否是因为请求被服务器防火墙阻拦。验证完毕后如果是,因为危险不能一直关闭防火墙,可在防火墙高级设置中新建入站规则:

  

sql server2012数据库引擎一连接就无响应_服务器_05

 

三、结语

  在以上几个问题解决后我们小组的成员都能在pc上进行爬取了,能够将所爬取的数据在pc上进行处理再存入服务器的数据库,这大大提高了工作效率,为数据处理的团队提供了更多的数据基础。