springboot项目中使用mysql8.0.46版本,具体如何配置及常见问题解决方法
在 Spring Boot 项目中使用 MySQL 8.0.46,核心就是:选对 JDBC 驱动 + 正确配置数据源参数。下面按「最常用、最稳妥」的方式给你一套可直接照抄的配置。
MySQL 8.0.46一键安装工具http://www.zrscsoft.com/sitepic/12177.html
一、Maven 依赖配置(推荐)
MySQL 8.0.46 属于 8.x 系列,必须使用mysql-connector-j8.0.31+(8.0.46 建议用 8.0.33+ / 9.x 驱动均可)。
✅ pom.xml
<dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.33</version> </dependency>⚠️ 不要再使用:
com.mysql.jdbc.Driver
mysql-connector-java(旧 groupId)
二、Spring Boot 数据源配置(application.yml)
✅ 推荐配置(MySQL 8.0.46 完全兼容)
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: root123🔍 关键参数说明
参数 | 是否必须 | 说明 |
|---|---|---|
| ✅ | 必须是 |
| ✅ | 防止时区错误(推荐 Asia/Shanghai) |
| ✅ | 本地开发建议关闭 |
| ✅ | 解决 8.0+ 认证插件问题 |
| ✅ | 中文不乱码 |
三、Druid 连接池完整示例(可选)
如果你在用Druid(RuoYi / 很多项目都用):
spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: root123 driver-class-name: com.mysql.cj.jdbc.Driver initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000四、application.properties 写法(如果你用 properties)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=root123五、常见错误 & 解决方案
❌ 1. 启动报错:Unknown system variable 'query_cache_size'
✅原因:MySQL 8.0 已移除查询缓存
✅解决:JDBC URL 中不要带useLegacyDatetimeCode=false等过时参数
❌ 2. 报错:caching_sha2_password cannot be loaded
✅原因:客户端驱动太老
✅解决:升级到mysql-connector-j 8.0.33+
❌ 3. 时间差 8 小时
✅解决:URL 中加:
serverTimezone=Asia/Shanghai六、MySQL 8.0.46 最佳实践总结 ✅
✅ 驱动:mysql-connector-j 8.0.33+
✅ Driver:com.mysql.cj.jdbc.Driver
✅ URL 必带参数:
useSSL=false serverTimezone=Asia/Shanghai allowPublicKeyRetrieval=true如果你愿意,可以把你的Spring Boot 版本 + 是否用 Druid + 当前报错日志贴出来,我可以帮你精确排查 ✅
