Java JDBC与sqlserver 2017连接时出现问题
我正在尝试使用jdbc驱动程序(microsoft 4.2和7.1)jdk 1.8_201连接sqlserver 2017。视窗10Java 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
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问题,我不知道为什么,因为我把所有东西都默认安装了