Idea连接Mysql错误:javax.net.ssl.SSLHandshakeException connecting to mysql

错误提示:

[08S01]
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate).

事件起因

当升级到Idea 2021.1之后,之前正常连接mysql的Database就报错了,提示SSL协议错误。

错误原因

根据jetbrains官方解释:我们最近更新了 java,出于安全原因,我们已将 TLSv1 转移到 jdk.tls.disabledAlgorithms.

总的来说就是,升级后的Idea自带的java运行环境启用了老的TLS协议。

解决方案

1.新建名为custom.java.security的文件,并且编辑为以下内容:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves

2.在Idea中,点击Help-Edit Custom VM Options,新增以下内容

-Djava.security.properties=${PATH_TO_FILE?}/custom.java.security

其中${PATH_TO_FILE?}是上一步文件的位置,比如说刚才你在D盘目录下新建的,则

-Djava.security.properties=D:/custom.java.security

3.保存,重启

官方解决链接

Can’t connect to remote MySQL since last version of IntelliJ : DBE-13313 (jetbrains.com)

发表评论

邮箱地址不会被公开。 必填项已用*标注