JDBC连接数据库时出现的Public Key Retrieval is not allowed错误

问题描述:

安装了mysql8.x后启动项目报错Public Key Retrieval is not allowed,之前mysq5.7没有这种情况鸭,于是乎就开始解决之旅了。

解决过程:

通过百度一通后,大致有了一点思路;

1.mysql5及之前的版本使用的是旧版驱动"com.mysql.jdbc.Driver",mysql6以及之后的版本需要更新到新版驱动,对应的Driver是"com.mysql.cj.jdbc.Driver",但是这个驱动错误的信息是"Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.",排除这个原因。

2.连接数据库的url中,加上allowPublicKeyRetrieval=true参数,经过验证解决该问题。

3.网上看到另外的解决 办法,修改default_authentication_plugin设置,在my.ini中增加[mysqld]default_authentication_plugin=mysql_native_password,然后mysql命令行执行ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';最后在url中添加时区参数serverTimezone=Asia/Shanghai。

总结:

个人采用第二种解决方法。

你可能感兴趣的:(JDBC连接数据库时出现的Public Key Retrieval is not allowed错误)