欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HikariCP数据库连接池连接MySQL失败:javax.net.ssl.SSLHandshakeException: No appropriate protocol

程序员文章站 2022-06-12 17:13:15
...

自从这两个月换了mac之后,我的项目在我的本地就也在没有快乐的运行起来,一直有个连接数据库超时的错误。
首先去找了度娘,但是发现度娘的答案也千奇百怪,都不能治我的mysql连接超时的病,于是我就根据报错的地方搭上断点,自己动手丰衣足食,试了好些遍,但是还是没有找到。
不过今天出现了一个新的错误,就是我的标题的异常,又找了度娘问问,似乎看到了曙光,删除了SSLv3但是重启项目还是不行,于是发挥我的不懈精神,继续又看到了这篇博客解决No appropriate protocol
try again:
在我的目录:/Library/java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home/jre/lib/security下执行

sudo vi java.security

输入开机密码后:
删除jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves
里面的TLSv1和TLSv1.1重启项目后见证了奇迹,我的项目可以正常启动了。今天小中100万。。。

我就看我之前的win的jdk的这个文件,发现SSLv3是存在的,但我的项目也是可以运行的,所以我就把SSLv3又加上了,重启项目后还是可以正常启动的。
开心,后面可以愉快的断点调试程序了。

网上也有说修改mysql的连接信息,添加:useSSL=false,但是其他的同事也是用的一个连接信息,为啥是正常的,所以我没有去修改连接信息。不过同侪们也可以试试,如果不行就可以试试我上面的。

其实要不是这次换电脑我可能永远都不知道TLSv1和TLSv1.1的故事会引发这个*。但是这个协议我在网上没有找到相关的文章,还不知道为啥有了这个就会导致连不上数据库,明天有时间再跟一下代码吧。到时候再更新博客。