最近使用SQLServer 2017數據庫進行開發,在用Java代碼鏈接數據庫的時候遇到一個問題,應該是個常見的問題了。在網上找了不少方法都不能解決,終於經過不少次測試解決掉了。這裏將解決方案記錄一下,親測有效!!!java
出現的問題是:web
com.microsoft.sqlserver.jdbc.SQLServerException: 到主機 的 TCP/IP 鏈接失敗。 java.net.ConnectException: Connection refused: connect at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.plusoft.util.SqlHelper.getConnection(SqlHelper.java:29) at com.plusoft.util.SqlHelper.query(SqlHelper.java:63) at com.plusoft.util.SqlHelper.queryPage(SqlHelper.java:107) at com.plusoft.dao.EmployeeDao.search(EmployeeDao.java:110) at com.plusoft.dao.EmployeeDao.search(EmployeeDao.java:92) at com.plusoft.service.EmployeeService.searchEmployees(EmployeeService.java:45) at com.plusoft.service.EmployeeService.searchEmployeesResult(EmployeeService.java:65) at com.plusoft.web.AjaxService.SearchEmployees(AjaxService.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
固然異常比這裏展現的多,不過看第一行就知道錯誤了。sql
解決方案:數據庫
(1)打開SQL Server Configuration Manager,點擊SQL Server 網絡配置前面的三角號,選擇SQLEXPRESS協議,查看TCP/IP的狀態是不是已啓用,若是是已禁用,則右鍵點擊TCP/IP選項,選擇啓用,以下圖所示:網絡
(2)而後右鍵點擊TCP/IP選項,選擇屬性,選擇IP地址,拉到最下面,能夠看到IPAll,TCP端口填寫爲1433,點擊肯定。sqlserver
(3)而後選擇SQL Navite Client 10.0配置下的客戶端協議,在這裏保證TCP/IP的狀態爲已啓用,以下圖所示:測試
右鍵點擊TCP/IP,選擇屬性,能夠看到這裏默認端口也是1433。以下圖所示:spa
(4)最後要重啓服務才能夠保證修改生效,選擇SQL Server服務下的SQL Server ,右鍵選擇從新啓動,重啓服務以下圖所示:.net
必定要重啓服務纔可生效!code
必定要重啓服務纔可生效!
必定要重啓服務纔可生效!
(重要的事說三遍)
(5)到此,問題解決。
以上是個人總結,但願對遇到一樣問題的朋友們有幫助。