JDBC报错Public Key Retrieval is not allowed终极解决方案 您所在的位置:网站首页 mysql检索是什么意思 JDBC报错Public Key Retrieval is not allowed终极解决方案

JDBC报错Public Key Retrieval is not allowed终极解决方案

2023-07-28 11:21| 来源: 网络整理| 查看: 265

查遍百度解决方案 都是URL加上一条allowPublicKeyRetrieval=true,但是又说这样不安全可能遭到MIMT攻击 或者就是先用cmd/navicat连接一下数据库就没事了,但这也不是常事啊

仔细检查URL 发现有一个useSSL=false,觉得会不会公钥和这个ssl关闭有冲突,尝试删掉这个参数后,不在报错,重启不另外连接mysql也不报错了。

追根溯源,最后发现学JDBC的时候在菜鸟教程看到的描述如下

*已反馈菜鸟教程修改

MySQL 8.0 以上版本的数据库连接有所不同:

1、MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar。

2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。

MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。

最后还需要设置 CST。

加载驱动与连接数据库方式如下:

Class.forName(“com.mysql.cj.jdbc.Driver”); conn =DriverManager.getConnection(“jdbc:mysql://localhost:3306/test_demo?useSSL=false&serverTimezone=UTC”,“root”,“password”);

然后当时我就直接拿他的URL来用了。。。

其中useSSL=false这条应该就是罪魁祸首,具体原因不是很清楚SSL如何加密的,但问题解决了。。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有