连接数据库报错:Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol的一个解决方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java: 171 ) at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java: 101 ) at sun.security.ssl.TransportContext.kickstart(TransportContext.java: 238 ) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java: 394 ) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java: 373 ) at com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java: 316 ) at com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java: 188 ) at com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java: 99 ) at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java: 331 ) ... 13 more ERROR [Druid-ConnectionPool-Create- 2104781626 ] - create connection error, url: jdbc:mysql: //localhost:3306/xxx?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useAffectedRows=true&allowMultiQueries=true, errorCode 0, state 08S01 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java: 174 ) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java: 64 ) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java: 827 ) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java: 447 ) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java: 237 ) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java: 199 ) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java: 1464 ) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java: 1529 ) at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java: 2109 ) Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.GeneratedConstructorAccessor58.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java: 45 ) at java.lang.reflect.Constructor.newInstance(Constructor.java: 423 ) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java: 61 ) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java: 105 ) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java: 151 ) at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java: 167 ) at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java: 340 ) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.negotiateSSLConnection(NativeAuthenticationProvider.java: 777 ) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java: 486 ) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java: 202 ) at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java: 1348 ) at com.mysql.cj.NativeSession.connect(NativeSession.java: 163 ) at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java: 947 ) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java: 817 ) ... 6 more Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java: 171 ) at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java: 101 ) at sun.security.ssl.TransportContext.kickstart(TransportContext.java: 238 ) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java: 394 ) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java: 373 ) at com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java: 316 ) at com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java: 188 ) at com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java: 99 ) at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java: 331 ) ... 13 more ERROR [Druid-ConnectionPool-Create- 2104781626 ] - create connection error, url: jdbc:mysql: //localhost:3306/xxxx?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useAffectedRows=true&allowMultiQueries=true, errorCode 0, state 08S01 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java: 174 ) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java: 64 ) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java: 827 ) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java: 447 ) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java: 237 ) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java: 199 ) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java: 1464 ) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java: 1529 ) at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java: 2109 ) Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.GeneratedConstructorAccessor58.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java: 45 ) at java.lang.reflect.Constructor.newInstance(Constructor.java: 423 ) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java: 61 ) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java: 105 ) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java: 151 ) at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java: 167 ) at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java: 340 ) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.negotiateSSLConnection(NativeAuthenticationProvider.java: 777 ) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java: 486 ) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java: 202 ) at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java: 1348 ) at com.mysql.cj.NativeSession.connect(NativeSession.java: 163 ) at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java: 947 ) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java: 817 ) ... 6 more Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java: 171 ) at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java: 101 |
我的解决方法:
在连接的后面加上 useSSL=false
1 | url: jdbc:mysql: //localhost:3306/demo1?useUnicode=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useAffectedRows=true&allowMultiQueries=true |
当你没有目标时,就把眼前的事做好
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix