解决 HikariPool-1 - Exception during pool initialization.问题

本文解决了一个常见的MySQL数据库连接问题:PublicKeyRetrievalisnotallowed错误。通过调整连接URL参数允许公钥检索,成功解决了HikariCP连接池初始化时遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 HikariPool-1 - Exception during pool initialization.  java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

在mysql8.0以上的版本,在连接数据库的时候报错: 

HikariPool-1 - Exception during pool initialization.java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

解决办法:在url后面加上“allowPublicKeyRetrieval=true”即可

spring.datasource.url=jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
### IDEA 中 HikariPool 初始化异常解决方案 当遇到 `HikariPool-1 - Exception during pool initialization` 错误时,通常是因为应用程序无法成功建立与 MySQL 数据库的连接。此错误可能由多种因素引起,包括但不限于 JDBC URL 配置不正确、MySQL 版本兼容性问题以及字符集设置不当。 #### 一、检查并更新依赖项 确保所使用的 MySQL 连接器版本与 MySQL 数据库服务器相匹配非常重要。当前环境中使用的是 MySQL 8.0 和 mysql-connector-java-5.1.7-bin.jar,这二者之间可能存在兼容性差异。建议升级至最新版的 MySQL Connector/J 来提高稳定性[^2]。 对于 Maven 项目而言,在 pom.xml 文件内添加或修改如下依赖声明: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.x</version><!-- 替换为最新的稳定版本号 --> </dependency> ``` #### 二、调整 application.yml 的数据库配置 针对特定于 MySQL 8.0 及以上版本的情况,需特别注意字符编码参数的设定。如果收到关于未知初始字符集索引 '255' 的警告,则表明客户端和服务端之间的默认字符集存在冲突。此时应显式指定字符集及相关属性来解决问题[^3]。 编辑 src/main/resources/application.yml 文件,按照下面的方式定义数据源URL: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver ``` 请注意上述 URL 参数中包含了 `useUnicode`, `characterEncoding`, 和 `serverTimezone` 设置,这些都是为了确保最佳实践而推荐加入的内容。 通过实施这些更改之后重新构建并运行 Spring Boot 应用程序应该可以有效缓解该初始化失败的问题
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值