mysql 报错 java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
时间: 2023-11-29 15:47:16 浏览: 74
MYSQL拒绝访问报错not allowed to connect
5星 · 资源好评率100%
这个错误通常是由于MySQL 8.0的默认身份验证插件更改所致。在MySQL 8.0中,默认情况下,使用caching_sha2_password插件进行身份验证,而不是以前的mysql_native_password插件。这可能会导致某些应用程序无法连接到MySQL服务器并出现“Public Key Retrieval is not allowed”错误。
要解决此问题,您可以尝试以下两种方法之一:
1.在JDBC URL中添加allowPublicKeyRetrieval=true参数,例如:
```java
jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
```
2.将MySQL用户的身份验证插件更改为mysql_native_password。您可以使用以下命令更改用户的身份验证插件:
```sql
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
```
其中,'username'和'password'分别是您要更改的用户名和密码。
阅读全文