com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed
时间: 2023-08-16 13:14:32 浏览: 93
MYSQL拒绝访问报错not allowed to connect
5星 · 资源好评率100%
这个错误是由于MySQL连接配置中的公钥检索设置引起的。默认情况下,MySQL 8.0版本之后的驱动程序不允许在安全连接上进行公钥检索。这是为了增强安全性而做出的更改。
要解决此问题,您可以尝试以下解决方案之一:
1. 在连接URL中添加`allowPublicKeyRetrieval=true`参数,示例如下:
```java
String url = "jdbc:mysql://localhost:3306/database?allowPublicKeyRetrieval=true";
Connection conn = DriverManager.getConnection(url, username, password);
```
2. 如果您使用的是MySQL Connector/J驱动程序,请确保您使用的是5.1.47版本之后的驱动程序。这些版本对于公钥检索问题进行了修复。
3. 如果您无法更改连接URL或驱动程序版本,可以尝试在MySQL服务器上更改`my.cnf`文件,启用公钥检索。在`[mysqld]`部分添加以下行:
```bash
[mysqld]
...
allowPublicKeyRetrieval=true
```
然后重启MySQL服务器。
通过以上方法之一,您应该能够解决"Public Key Retrieval is not allowed"错误。如果问题仍然存在,请检查您的数据库配置和访问权限是否正确。
阅读全文