JDBC連接SQL Server訪問出錯
報錯一:com.microsoft.sqlserver.jdbc.SQLServerException: 用戶 ‘sa’ 登錄失敗
報錯二:com.microsoft.sqlserver.jdbc.SQLServerException: 通過埠 1433 連接到主機 localhost 的 TCP/IP 連接失敗,錯誤:“connect timed out,請驗證連接屬性,確保 SQL Server 的實體正在主機上運行,且在此埠接受 TCP/IP 連接,還要確保防火墻沒有阻止到此埠的 TCP 連接,”,
這一切都是因為昨天JAVA大作業通資料庫出現一系列問題進行有了現在的這一篇博客
這兩個問題昨天同時出現了,解決了埠連接失敗的問題又出現了用戶'sa'登錄失敗,最后通過一系列的努力終于得到了解決,希望可以幫到和我遇到一樣錯誤的小伙伴
以下是'sa'登錄失敗的報錯代碼:
com.microsoft.sqlserver.jdbc.SQLServerException: 用戶 'sa' 登錄失敗, ClientConnectionId:c21ee6ce-53fa-4e75-af98-04460287ad7f
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:279)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:99)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4346)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at cn.hestyle.test.Test01.<clinit>(Test01.java:21)
Exception in thread "main" java.lang.NullPointerException
at cn.hestyle.test.Test01.main(Test01.java:30)
以下是1433埠連接失敗的報錯代碼:
com.microsoft.sqlserver.jdbc.SQLServerException: 通過埠 1433 連接到主機 localhost 的 TCP/IP 連接失敗,錯誤:“connect timed out,請驗證連接屬性,確保 SQL Server 的實體正在主機上運行,且在此埠接受 TCP/IP 連接,還要確保防火墻沒有阻止到此埠的 TCP 連接,”,
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:191)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:242)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2369)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:551)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1963)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at cn.hestyle.test.Test01.<clinit>(Test01.java:21)
Exception in thread "main" java.lang.NullPointerException
at cn.hestyle.test.Test01.main(Test01.java:30)
修改方法如下

打開服務后找到SQL SERVER的一系列、這里面能啟動的都給它啟動了(右鍵啟動)

然后找到SQL SERVER 2017配置管理器,打開

打開SQL Server服務,檢查如下內容的狀態,將能夠啟動的均啟動

在網路配置找到如下兩個協議

先點開SQLEXPRESS協議,檢查TCP/IP協議是否啟用,如沒有啟用,右鍵啟用

雙擊打開TCP/IP協議屬性,確保協議如下狀態
如若大家出現此類問題,那么TCP埠處應該是空白,需要手動填入1433

不過這樣應該還會出現我們的報錯一,因為我最開始是在解決報錯二,二解決了又出現了錯誤一,這樣可能是1433埠被其他應用程式占用,可以將最后一處埠改為1435

同理也需要檢查MSSQLSERVER協議里面的TCP/IP協議是否啟用

同時打開我們的SQL Server 2017,登錄方式選中Windows身份驗證

核實我們的賬號密碼是否正確

打開此處屬性檢查安全性身份驗證和登錄審核是否如下圖

最后進行所有的修改之后打開服務,確保能啟動的均已啟動,同時重啟一系列SQL Server服務
希望能幫到大家,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/356764.html
標籤:其他
上一篇:河北科技大學校園網設計和實作
