Java JDBC与sqlserver 2017连接时出现问题

Java JDBC与sqlserver 2017连接时出现问题,java,sql-server,jdbc,Java,Sql Server,Jdbc,我正在尝试使用jdbc驱动程序(microsoft 4.2和7.1)jdk 1.8_201连接sqlserver 2017。视窗10 String connectionUrl = "jdbc:sqlserver://localhost\\SQLEXPRESS01;integratedSecurity=true;"; Random r = new Random(); try(Connection connection = DriverManager.getCon

我正在尝试使用jdbc驱动程序(microsoft 4.2和7.1)jdk 1.8_201连接sqlserver 2017。视窗10

String connectionUrl = "jdbc:sqlserver://localhost\\SQLEXPRESS01;integratedSecurity=true;";
         Random r = new Random();
         try(Connection connection = DriverManager.getConnection(connectionUrl)) {
}
我得到了以下例外:

线程“main”中出现异常 com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法运行 使用安全套接字建立到SQL Server的安全连接 层(SSL)加密。错误:“对等方重置连接:套接字写入” 错误客户端连接ID: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.connectioninternal(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: 对等方重置连接:套接字写入错误 客户连接ID: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个以上

它与sqlcmd和SSMS连接良好,即使使用Odbc


我无法使用Odbc驱动程序,因为它已从jdk 8中删除,并且我当前没有旧版本7可与Odbc驱动程序连接mysql://localhost:3306/DB?useLegacyDatetimeCode=false&serverTimezone=UTC“、”用户“、”PW”)

我使用mysql,所以我不知道它如何与sqlserver配合使用。(仍在学习)但在mysql中,您必须指定用户和密码。也许这就是问题所在

LG
RT

在最新更新之前,sqlserver的url运行良好。我重新安装了sqlserver,遇到了与您尝试过的相同的问题:String url=“jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=DBName;integratedSecurity=true”;Connection conn=DriverManager.getConnection(url、用户名、密码);为什么您认为发布MySQL的URL会以任何方式为Microsoft SQL Server提供答案?在任何情况下,对于具有
integratedSecurity
的SQL Server,驱动程序都将与当前Windows用户进行身份验证。例外情况并不是指错误的凭据。它提到了一个ssl问题,我不知道为什么,因为我把所有东西都默认安装了