Failed to initialize pool: Public Key Retrieval is not allowed
时间: 2024-05-18 11:09:42 浏览: 154
"Failed to initialize pool: Public Key Retrieval is not allowed" 是指无法初始化连接池,这通常是由于数据库配置或权限问题引起的。原因可能是您正在尝试连接MySQL 8.0或更高版本,并且使用的是旧版本的MySQL驱动程序。在这种情况下,您可以升级到MySQL Connector/J 8.0或更高版本来解决该问题。
如果您正在使用MySQL 5.7或更早版本,则可能需要检查数据库用户的权限设置是否正确,并确保您的应用程序有足够的权限来访问所需的数据库和表。
相关问题
org.datanucleus.exceptions.NucleusException: Attempt to invoke the "HikariCP" plugin to create a ConnectionPool gave an error : Failed to initialize pool: Public Key Retrieval is not allowed
这个异常是因为在使用 HikariCP 连接池时,JDBC 驱动程序使用了 MySQL 8+ 的默认身份验证插件(caching_sha2_password)而没有启用 TLS(Transport Layer Security)加密。因此,MySQL 8+ 默认情况下禁止公钥检索,并且连接池无法正常工作。
解决方法是在 MySQL 8+ 中启用 TLS 加密,或者使用旧版的身份验证插件(mysql_native_password)来连接数据库。你可以在创建 HikariCP 连接池时添加以下属性来使用旧版身份验证插件:
```
jdbcUrl=jdbc:mysql://localhost:3306/mydatabase?useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false&serverTimezone=UTC
```
其中 `allowPublicKeyRetrieval=true` 参数启用公钥检索,`useSSL=false` 参数禁用 TLS 加密。
阅读全文