背景

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

  • 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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐