oraclejdk1.8 换成 openjdk1.8之后,mysql连不上了

日志报错如下:
com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://192.168.1.15:3306/test_db?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC, errorCode 0,state 08S01

com.mysql.cj.jdbc.exceptions: CommuncationsException: Communcations link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server

...

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communcations link failure

...

Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol(protocol is disabled or cipher suites are inappropriate)

报错原因:

openjdk1.8.0_291开始,默认禁用了tls1.0和tls1.1版本,导致jdbc和mysql的连接无法正确建立,从而报错:详细release地址:https://www.java.com/en/download/helprelease_changes.html

对比orackejdk版本,jdbc连接种没有手动指定useSSL=false的时候,其连接的建立仍旧还是使用了tls的方式,并且默认使用1.1版本进行交互,使用openjdk后,因禁用tls1.1, 无法正确发送client hello因而无法建立连接,

解决方法:

解决一、
加useSSL=false
jdbc:mysql://192.168.1.15:3306/test_db?useSSL=false%useUnicode=true&characterEnocind=true&characterEncoding=utf8&serverTimezone=UTC


解决二、指定tls1.2
jdbc:mysql://192.168.1.15:3306/test_db?enabledTLSProtocols=TLSv1.2&useUnicode=true&characterEnocind=true&characterEncoding=utf8&serverTimezone=UTC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

京河小蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值