背景
本地连接没问题,容器部署后连接失败。
- MySQL版本:5.7.22
- JDK版本:1.8.0_312
现象
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
这个报错的意思是说连接协议被禁用或密码不对。
排查过程
- 排查用户名密码是否正确——正确
- 排查网络是否通畅——通畅
- 我本地使用的是jdk1.8.0_172,打镜像时,基础镜像里的jdk版本是1.8.0_312。怀疑是不是jdk版本导致。通过在网上的搜索发现,jdk1.8的高版本确实对SSL协议做了限制。
解决方案
此处给出三种解决方案:
-
降低基础镜像的jdk版本,改为与本地一致的1.8.0_131。
-
修改jdk的配置文件,去除对ssl协议的限制,可以参考《Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol》
-
最简单的方法,直接在连接MySQL时,连接参数里禁用SSL:
useSSL=false

博客围绕Java连接MySQL在本地正常、容器部署后失败的问题展开。报错显示连接协议被禁用或密码不对,经排查用户名、密码和网络均正常,怀疑是JDK版本问题,因JDK 1.8高版本对SSL协议有限制。给出三种解决方案,如降低JDK版本、修改配置文件、禁用SSL。
480

被折叠的 条评论
为什么被折叠?



