【发布时间】:2017-09-05 03:48:41
【问题描述】:
我能够使用 DataGrip 附带的 JDBC 驱动程序(我使用的是 Mac)并看到以下错误消息,之前它工作得非常好,我没有打扰任何东西:
Connection to SQL Azure failed
Driver cannot establish (SSL) connection SQL Server
Error: "java.security.cert.CertificateException: cannot authenticat
(SSL) ClientConnectionId:d66ab....
我已尝试更新 SQL JDBC 驱动程序,但仍然看不到数据库内容。有什么想法吗?
编辑:这是我能够找到的堆栈跟踪:
这是我能够找到的堆栈跟踪:[08S01] 驱动程序无法 使用 SSL 与 SQL Server 建立安全连接。错误: “java.security.cert.CertificateException:无法验证名称 服务器在安全通信层 (SSL) 初始化 ”。 ClientConnectionId:b7c55361-d82f-4bc1-b1be-124d18433c3b java.security.cert.CertificateException:无法验证名称 服务器在安全通信层 (SSL) 初始化 期间
atcom.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.validateServerNameInCertificate(IOBuffer.java:1491) 在 com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.checkServerTrusted(IOBuffer.java:1384) 在 sun.security.ssl .AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:922) 在 sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1488) 在 sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) 在 sun.security。 ssl.Handshaker.processLoop(Handshaker.java:979) 在 sun.security.ssl.Handshaker.process_record(Handshaker.java:914) 在 sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) 在 sun.security .ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) 在 com。 microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:16 88) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1977) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection .connectInternal(SQLServerConnection.java:1459) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773) 在 com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168) 在 com。 intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun。 reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) 在 sun.rmi java.lang.reflect.Method.invoke(Method.java:497) .transport.Transport$1.run(Transport.java:200) 在 sun.rmi.transport.Transport$1 .run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:568) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$256(TCPTransport.java: 683) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
【问题讨论】:
-
你的代码是什么样子的?
-
我正在使用 DataGrip,一个 Mac 应用程序来查看数据库表、运行查询等,我想知道微软是否更新了 jdbc 驱动程序或什么
-
尝试将 SSL 证书添加到您的密钥库。
-
我可以试试,之前不需要这样做,在这种情况下我连接到 SQL Azure,我将如何获得 SSL 证书?
-
另一个更新。我使用了 Azure 告诉我的确切连接字符串,但现在看到“连接到 SQL Azure 失败的管道损坏”消息。
标签: java sql-server macos jdbc azure-sql-database