Spring Boot升级至2.5.5启动报错Failed to determine a suitable driver class
排查解决步骤
- 检查数据源基础配置是否存在
确认resources目录下的application.properties或application.yml中配置了完整的MySQL连接参数,参考配置如下:
Spring Boot 2.x默认适配MySQL 8.0版本驱动,需使用spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username=数据库账号 spring.datasource.password=数据库密码 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivercom.mysql.cj.jdbc.Driver作为驱动类,不要使用旧版本的com.mysql.jdbc.Driver。 - 检查多环境配置是否激活
如果你的数据库配置写在分环境的配置文件中(如application-dev.yml、application-prod.yml),需要在主配置文件中指定激活的环境:
也可以在项目启动命令后追加spring.profiles.active=dev--spring.profiles.active=dev参数激活对应环境。 - 检查MySQL驱动版本兼容性
Spring Boot 2.5.5默认依赖的MySQL驱动版本为8.0.x,如果你使用的是MySQL 5.7及更低版本,需要手动指定驱动版本避免兼容问题,修改pom.xml依赖:
对应驱动类需改为<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> <scope>runtime</scope> </dependency>com.mysql.jdbc.Driver,连接url也可以去掉serverTimezone参数。 - 检查Maven依赖是否正常加载
执行mvn clean install命令重新拉取项目依赖,确认mysql-connector-java包已经被正确导入到项目依赖库中,不存在损坏或者未加载的问题。 - 不需要使用数据库的场景可排除自动配置
如果当前项目不需要用到数据库功能,可以在启动类的@SpringBootApplication注解上添加排除配置,跳过数据源自动装配:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

