admin管理员组

文章数量:1565798

1,问题

做 Spring Boot项目时出现 Mysql 库连接失败,SSL 连接失败问题

com.mysql.cj.exceptions.CJCommunicationsException: javax.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate).

介绍一下我的环境:

  • JDK:1.8;

  • Mysql:5.7;

  • IDEA 运行环境为win10,Mysql 安装在 Linux 虚拟机上;

2,解决方案

目前找到一下几种解决方案,可以尝试一下(前提保证项目 application.properities 或 application.yml 文件中数据库地址端口、数据库名等配置是正确的)

方案一

url 数据源后面添加 &useSSL=false,(经测试此方案可以暂时修复bug,但是不建议采纳)

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    #MySQL配置
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.56.10:3306/gulimall_wms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useSSL=false

方案二

安装更高版本的 jdk 环境,例如15;然后配置到IDEA 中,重新启动项目;

方案三

打开 java.security文件,Windows下文件路径为 C:\Program Files\Java\jdk1.8.0_291\jre\lib\security

找到下面命令,删除SSLv3, TLSv1, TLSv1.1,然后保存即可

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

原因如下:

详情可参考:https://dev.mysql/doc/connector-j/8.0/en/connector-j-usagenotes-known-issues-limitations.html

方案四

  • 1,升级 Mysql 版本至8.0+;

  • 2,使用稳定版本的 JDBC jar 包连接Mysql客户端,例如 ysql-connector-java-8.0.11.jar;

详情参考连接

https://www.ibm/docs/en/capmp/8.1.4?topic=mm-mysql-agent-fails-collect-data-when-it-is-configured-jdbc-version-8019-later-non-windows-platform

最后,祝你好运!

本文标签: 解决方法LINKCommunicationsfailuremysql