我試圖使用scala訪問SQL Server 2008,但沒有任何成功。下面是我的示例代碼:使用集成身份驗證通過Windows 2008 64位上的Scala/JDBC訪問SQL Server 2008 R2
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
val connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=XXX;integratedSecurity=true;";
val con = DriverManager.getConnection(connectionUrl);
,這裏是我的錯誤:
com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1339)
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1654)
at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:3694)
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:5026)
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:4978)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2528)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1905)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1893)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1045)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
我不知道發生了什麼事情錯了,我沒能得到任何進一步的調試輸出。我檢查了以下內容:
- 當然,Sql服務器已啓動並運行,可以通過Management Studio或通過.Net代碼訪問。
- 我有64位Java安裝,我正在使用64位sqljdbc_auth.dll。我嘗試了32位版本(只是爲了確保),並得到了預期的錯誤,告訴我使用64位版本。
- 如果我從連接字符串中刪除integratedSecurity = true,則會從SQL Server獲得預期的身份驗證錯誤:用戶「Login」登錄失敗。
很明顯,綜合認證是問題。任何提示如何解決或如何進一步調試?
你有沒有考慮通過用戶名和密碼? –
對不起,我忘了提及:用戶名/密碼不是一個選項。 – Achim
你工作過嗎? SQL Server日誌說什麼,它應該給一個指示。 – cairnz