寫在開頭
不得不說給一台新的服務器配置和部署的確是個不小的工程,在這里先感謝我們的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上進行處理再存入服務器的數據庫,這大大提高了工作效率,為數據處理的團隊提供了更多的數據基礎。
