JDBC报错Public Key Retrieval is not allowed终极解决方案 | 您所在的位置:网站首页 › mysql检索是什么意思 › JDBC报错Public Key Retrieval is not allowed终极解决方案 |
查遍百度解决方案 都是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 实验室设备网 版权所有 |