You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot连接MySQL失败求助:无法创建初始连接池

解决Spring Boot连接MySQL时的Unable to create initial connections of pool异常

从你的报错信息、配置和MySQL Workbench的服务器状态来看,核心问题是MySQL驱动版本过低,与你的MySQL 8.x服务器不兼容,这是导致连接池初始化失败的主要原因。下面是分步修复方案:

1. 升级MySQL驱动依赖

你当前使用的mysql-connector-java 5.1.27版本完全不支持MySQL 8.x系列,需要替换为兼容的8.x版本。在pom.xml中更新依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <!-- 推荐使用8.x稳定版,比如8.0.33 -->
    <version>8.0.33</version>
</dependency>

注意:MySQL 8.x的驱动类名已从com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver,Spring Boot 2.x及以上版本会自动检测驱动类,若你使用的是较老的Spring Boot版本,需手动添加配置:spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

2. 修正数据库连接URL配置

MySQL 8.x强制要求指定时区,还需添加额外参数解决SSL和公钥检索问题,更新application.properties中的URL:

spring.datasource.url = jdbc:mysql://localhost:3306/OnlineBanking?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
  • serverTimezone:设置为你所在时区(如Asia/Shanghai或UTC),避免时区不匹配导致的连接失败
  • useSSL=false:本地开发环境可关闭SSL验证,生产环境按需开启
  • allowPublicKeyRetrieval=true:解决高版本驱动无法获取服务器公钥的问题

3. 验证数据库用户配置

确认你的root用户允许从localhost登录,且密码配置正确(你当前配置密码为空,需确保MySQL的root用户确实启用了空密码登录,或替换为实际密码)。可通过MySQL Workbench执行以下SQL验证权限:

SELECT user, host FROM mysql.user WHERE user='root';

若root对应的host是localhost或%,则符合当前连接配置。

4. 确认MySQL服务状态

虽然你能通过Workbench连接,仍需再次确认MySQL服务处于运行状态:

  • Windows:在系统服务列表中查看MySQL服务状态
  • Linux:执行命令systemctl status mysql检查

完成以上步骤后,重启Spring Boot应用,即可正常初始化连接池并连接数据库。

内容的提问来源于stack exchange,提问作者Boris Dedejski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:27:47