[英]JDBC connection doesn't work with Sql Server 2012 or higher
以下代碼適用於Sql Server 2008,但不適用於Sql Server 2012和2014(v 11或12)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://myhost\\myinstance:1433;database=mydb";
connection = DriverManager.getConnection(url,"username", "pwd");
我正在使用Java Runtime 1.7
您正在下面的Shell行中看到,我正在使用Microsoft驅動程序。
我嘗試將sqljdbc_auth.dll(我嘗試過32位和64位)放入jar驅動程序文件夾中,
在JRE bin文件夾中,甚至作為java.library.path傳遞
我已經在配置管理器中(在Sql Server上)簽入了啟用TCP / IP並在端口1433響應的信息。
防火牆關閉。
這是我得到的錯誤:
c:\\ test \\ TestConn \\ Test2 \\ bin>“ C:\\ Program Files \\ Java \\ jre7 \\ bin \\ java” -classpath C:\\ libsqlsvr \\ sqljdbc_6.0 \\ ita \\ sqljdbc4.1.jar;。 -Djava.library.path = C:\\ libsqlsvr \\ sqljdbc_6.0 \\ ita \\ auth \\ x64測試com.microsoft.sqlserver.jdbc.SQLServerException:與熱myhost的TCP / IP連接(端口1433)失敗。 錯誤:“連接超時。請驗證連接屬性。請確保SQL Server實例正在主機上運行並在端口上接受TCP / IP連接。請確保與端口的TCP連接沒有被防火牆阻止。 ”。 com.microsoft.sqlserver.jdbc.SocketFinder上com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExcepti onToSQLServerException(SQL ServerException.java:241)上com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(S QLServerException.java:190) .findSocket(IOBuffer.java:22 43)位於com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)位於com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLSer verConnection.java:1309) com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)上的com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConne ction.java:991)在com.microsoft.sqlserver.jdbc.SQLServerDriver在Test.main(Test.com)上的java.sql.DriverManager.getConnection(Unknown Source)上的connect(SQLServerDriver.java:1012)在Test.testsqlsvr(Test.java:135)上的java.sql.DriverManager.getConnection(Unknown Source)上。 Java的:24)
您知道什么可能導致問題嗎?
由於您正在JDBC中使用SQL Server的HOST:PORT
標識,因此應在HOST部分中提供有效的IP或主機名,而不是實例名稱(即,不提供“ myhost \\ myinstance”,而是實際的網絡主機名/ IP) 。
JDBC連接通過普通的TCP進行,因此HOST:PORT
是普通的網絡地址,不是Microsoft的魔法。 HOSTNAME\\INSTANCE
使用駐留在已知端口(UDP 1434)上的調度程序服務( SQL Server Browser ),並根據\\INSTANCE
部分轉發連接,並且不與端口組合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.