You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Spring Boot连接MySQL失败:无法加载com.mysql.jdbc.Driver驱动

解决Spring Boot连接MySQL时Hikari驱动加载失败的问题

我之前也碰到过这个一模一样的问题,大概率是MySQL驱动的配置或者依赖出问题了,给你几个排查和解决的步骤:

1. 确认MySQL驱动依赖是否正确引入

如果你的项目用的是Maven,检查pom.xml里是否包含MySQL驱动的依赖,Spring Boot官方脚手架应该会自动帮你添加,但有时候可能版本不对或者没加上:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

如果是Gradle项目,对应的配置是:

runtimeOnly 'mysql:mysql-connector-java'

如果你的MySQL版本是8.0及以上,建议指定明确的驱动版本(比如8.0.33),避免Spring Boot默认的版本和你的数据库不兼容。

2. 修正数据库驱动类名和URL配置

这是最常见的坑:

  • MySQL 5.x版本:驱动类是com.mysql.jdbc.Driver,URL不需要时区参数
  • MySQL 8.x版本:驱动类必须改成com.mysql.cj.jdbc.Driver,而且URL必须加上时区参数(比如serverTimezone=Asia/Shanghai),否则会报错

举个MySQL 8.x的application.properties配置示例:

spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username=your_db_username
spring.datasource.password=your_db_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA相关配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

3. 刷新依赖并清理项目

有时候STS里的依赖可能没同步,右键你的项目:

  • Maven项目:选择Maven -> Update Project,勾选Force Update of Snapshots/Releases
  • Gradle项目:选择Gradle -> Refresh Gradle Project

之后清理项目(Project -> Clean)再重新运行。

4. 排查依赖冲突

如果上面的步骤都没用,可能是项目里有重复的MySQL驱动依赖。用Maven命令查看依赖树:

mvn dependency:tree

如果发现多个版本的mysql-connector-java,找到冲突的依赖,在对应的<dependency>里加上<exclusions>排除掉多余的版本。


内容的提问来源于stack exchange,提问作者Tyler Durden

火山引擎 最新活动