我正在尝试使用jdbc驱动程序(Microsoft 4.2和7.1)jdk 1.8_201连接到sqlserver 2017。 Windows 10
String connectionUrl = "jdbc:sqlserver://localhost\\SQLEXPRESS01;integratedSecurity=true;";
Random r = new Random();
try(Connection connection = DriverManager.getConnection(connectionUrl)) {
}
我遇到以下异常:
线程“主”中的异常 com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法 通过使用安全套接字建立到SQL Server的安全连接 层(SSL)加密。错误:“连接被对等方重置:套接字写入 错误ClientConnectionId:16429365-183f-44fc-a599-c66fe7ad39be”。 com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2887) 在 com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1881) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2452) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2103) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1950) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162) 在 com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735) 在java.sql.DriverManager.getConnection(未知源)在 java.sql.DriverManager.getConnection(未知源),位于 Autofill.main(Autofill.java:50)原因:java.io.IOException: 对等方重置连接:套接字写入错误 ClientConnectionId:16429365-183f-44fc-a599-c66fe7ad39be位于 com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:780) 在 com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.readInternal(IOBuffer.java:840) 在 com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.read(IOBuffer.java:833) 在 com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream.readInternal(IOBuffer.java:1003) 在 com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream.read(IOBuffer.java:993) 在sun.security.ssl.InputRecord.readFully(未知源)处 sun.security.ssl.InputRecord.read(未知源)位于 sun.security.ssl.SSLSocketImpl.readRecord(未知源)在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(未知来源) 在sun.security.ssl.SSLSocketImpl.startHandshake(未知源)在 sun.security.ssl.SSLSocketImpl.startHandshake(未知源)在 com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1799) ...另外8个
即使与Odbc,它也可以与sqlcmd和SSMS很好地连接
我无法使用Odbc驱动程序,因为它已从jdk 8中删除,并且我目前没有旧版本7与Odbc驱动程序连接
答案 0 :(得分:-1)
DriverManager.getConnection(“ jdbc:mysql:// localhost:3306 / DB?useLegacyDatetimeCode = false&serverTimezone = UTC”,“ USER”,“ PW”);
我使用mysql,所以我不知道它如何与sqlserver一起使用。 (仍然学习它)但是在mysql中,您必须指定用户和密码。也许就是这个问题。
LG RT