前言:
现时各位老铁们对“mysqlconnect不支持”大约比较讲究,咱们都需要知道一些“mysqlconnect不支持”的相关内容。那么小编同时在网络上搜集了一些对于“mysqlconnect不支持””的相关内容,希望大家能喜欢,你们一起来学习一下吧!今天在启动Springboot项目的时候连接数据库的时候报错了,错误信息如下:
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.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 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) ... 11 common frames omittedCaused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
根据报错信息主要的原因就是 No appropriate protocol (protocol is disabled or cipher suites are inappropriate),意思就是没有合适的协议,或者协议被禁用了,那么是什么协议被禁用了呢?根据SSLHandshakeException可以知道是SSL协议的问题,所以我的解决方案就是在连接jdbc的url上加上&useSSL=false,重新启动问题解决。
但是这个项目以前在我另外的电脑上运行的时候也是没有问题的,为什么我现在就出了问题了呢?原来是我两台电脑的jdk版本不一致导致的,打开现在电脑的java.security文件
cd /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/jre/lib/security
可以看到ssl协议被禁用了
# Example:# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves
修改一下删除SSL部分
# Example:# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048jdk.tls.disabledAlgorithms=RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves
然后重启项目也能成功。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #mysqlconnect不支持