背景

本地连接没问题,容器部署后连接失败。

  • 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)

这个报错的意思是说连接协议被禁用或密码不对。

排查过程

  1. 排查用户名密码是否正确——正确
  2. 排查网络是否通畅——通畅
  3. 我本地使用的是jdk1.8.0_172,打镜像时,基础镜像里的jdk版本是1.8.0_312。怀疑是不是jdk版本导致。通过在网上的搜索发现,jdk1.8的高版本确实对SSL协议做了限制

解决方案

此处给出三种解决方案:

  1. 降低基础镜像的jdk版本,改为与本地一致的1.8.0_131。

  2. 修改jdk的配置文件,去除对ssl协议的限制,可以参考《Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol》

  3. 最简单的方法,直接在连接MySQL时,连接参数里禁用SSL:

    useSSL=false

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐