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 小时前
springboot openfeign 自定义feign 接口重试机制
java·spring boot·后端
小江的记录本9 小时前
【JVM虚拟机】JVM调优:常用JVM参数、调优核心指标、OOM排查、GC日志分析、Arthas工具使用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
一 乐10 小时前
高校实习信息发布网站|基于Spring Boot的高校实习信息发布网站的设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·高校实习信息发布网站
han_hanker12 小时前
BeanUtils.copyProperties 和序列化的问题
java·开发语言·spring boot
西凉的悲伤12 小时前
Spring Boot 中 @Async(value = “alertThreadPool“) 是什么?为什么企业项目喜欢自定义线程池?
spring boot·多线程·async·异步
闪电悠米14 小时前
黑马点评-优惠券秒杀-05_local_lock_cluster_problem
java·spring boot·redis·缓存
小江的记录本14 小时前
【JVM虚拟机】类加载机制:类加载全流程:加载→验证→准备→解析→初始化(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·算法·安全·spring·面试
搬石头的马农15 小时前
Claude Code SpringBoot开发:从0到1搭建企业级项目的6个核心Skill
java·人工智能·spring boot·后端·ai编程
yurenpai(27届找实习中)16 小时前
redis_点评(26.附近店铺——实现附近商家功能)
数据库·spring boot·redis
愤怒的苹果ext16 小时前
Spring Boot Redis Stream队列
spring boot·redis·消息队列·stream