Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
时间: 2023-10-14 20:56:19 浏览: 53
这个错误通常是由于 MySQL 连接配置问题引起的。当使用旧版本的 MySQL JDBC 驱动程序连接到 MySQL 8.0 或更新版本时,可能会出现此错误。
解决此问题的方法是在连接 URL 中添加一个参数来启用公钥检索。在连接 URL 中添加 `allowPublicKeyRetrieval=true` 参数,例如:
```
jdbc:mysql://hostname:port/database?allowPublicKeyRetrieval=true
```
请确保将 `hostname` 替换为实际的主机名,`port` 替换为 MySQL 服务器的端口号,`database` 替换为要连接的数据库名称。
如果您正在使用 Spring Boot 或其他框架,可以在配置文件中设置以下属性来解决此问题:
```
spring.datasource.url=jdbc:mysql://hostname:port/database?allowPublicKeyRetrieval=true
```
请记住,确保您正在使用与 MySQL 8.0 或更新版本兼容的 JDBC 驱动程序。您可以从 MySQL 官方网站下载最新的驱动程序,并将其添加到您的项目中。
相关问题
Caused by: com.mysql.cj.exceptions.CJException: Public Key Retrieval is not allowed
Caused by: com.mysql.cj.exceptions.CJException: Public Key Retrieval is not allowed是数据库连接问题。解决这个问题的方法是在spring.datasource.url后面添加allowPublicKeyRetrieval=true参数。这个参数允许从MySQL服务器检索公钥。可能的原因是MySQL服务器配置不允许检索公钥,而在连接中却需要使用公钥。
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException:
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException 是MySQL数据库连接异常的一种表现形式,通常是由于以下原因之一导致的:
1. 数据库连接超时或中断。
2. 数据库服务器宕机或无法访问。
3. 数据库连接配置错误。
如果您遇到此问题,可以尝试以下解决方法:
1. 检查数据库服务器是否正在运行,并确保可以从您的应用程序服务器访问它。
2. 检查数据库连接配置是否正确,包括主机名、端口号、用户名和密码等。
3. 检查数据库连接超时设置是否合理,并根据需要进行调整。
4. 如果您的应用程序在高负载情况下运行,请考虑增加数据库服务器的资源。