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

🔍 关键参数说明

参数 是否必须 说明
driver-class-name ✅ 必须是 com.mysql.cj.jdbc.Driver
serverTimezone ✅ 防止时区错误(推荐 Asia/Shanghai)
useSSL=false ✅ 本地开发建议关闭
allowPublicKeyRetrieval=true ✅ 解决 8.0+ 认证插件问题
useUnicode=true ✅ 中文不乱码

三、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 + 当前报错日志贴出来,我可以帮你精确排查 ✅

相关推荐
天空鸟_时光不老5 分钟前
01-我不转Python把AI塞进Java里
java·人工智能·spring boot·后端·spring·spring cloud·架构
SL_staff6 分钟前
3分钟零代码配置带审批流的报销单:JVS三引擎可视化串联实战
spring boot·开源·全栈
vx_Biye_Design17 分钟前
flask学生课程笔记共享系统29026-计算机课程设计、毕业设计
java·javascript·spring boot·后端·elasticsearch·flask·课程设计
骑着蜗牛撵大象3271 小时前
SpringBoot+Vue3 企业智能体侧挂架构:独立服务、独立数据库与主线零侵入落地
数据库·spring boot·架构·vue·springboot·事件驱动·服务拆分
2501_933923251 小时前
SpringCloud:通过订单服务认识什么是微服务
spring boot·后端·spring cloud
天空鸟_时光不老1 小时前
07-检查点与状态持久化
java·人工智能·spring boot·spring·spring cloud·kafka·maven
程序猿_极客1 小时前
【免费】2026分享一套优质的基于Java的电子产品抢购管理系统的设计与实现(智能推荐算法+可视化图表),源码+文档+视频详解(讲解)
java·spring boot·后端·协同过滤·电子产品抢购系统
天空鸟_时光不老1 小时前
09-RAG问答系统落地:从默认分割器的坑到Milvus召回调优
java·人工智能·spring boot·spring·spring cloud·maven·mybatis
fundoit2 小时前
资源服务器如何对 JWT 进行验签
java·运维·服务器·spring boot·php·oauth2
ym hyd 1112 小时前
生鲜超市库存管理信息系统源码 Java+SpringBoot+Vue3 前后分离
java·开发语言·vue.js·spring boot·毕设