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

相关推荐
happymagic6 小时前
java spring boot做的jar包程序,如何实现自动运行启动
java·运维·服务器·spring boot·jar
2601_9638701813 小时前
【计算机毕业设计】基于Vue + Spring Boot的社区养老服务管理平台设计与实现
spring boot·后端·课程设计
乐观的Terry13 小时前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
William Dawson14 小时前
【踩坑实录|Hive1\.2\.1数据服务接口5大疑难问题调试与全方位优化方案】
java·hive·spring boot
闲猫14 小时前
LangChain4j / Introduction
java·人工智能·spring boot·langchain4j
CodeHackerBhx16 小时前
Spring Boot 4 防重复提交:从接口幂等到 Redis 分布式锁的完整实践
java·数据库·spring boot·redis·分布式
用户31268748772018 小时前
Spring Bean 生命周期到底经历了什么?从实例化到销毁的全链路拆解
java·spring boot
Flittly18 小时前
【我的手搓轮子日记】(2)handmade-ioc 手搓 IOC 容器
java·spring boot·spring
AlunYegeer18 小时前
Spring Boot 多模块服务间 API Token 鉴权排查记录
java·spring boot·后端
paopaokaka_luck19 小时前
基于springboot3+vue3的乡村医生诊疗管理系统(AI助手、协同过滤算法、webSocket实时聊天、Echarts图形化分析)
前端·网络·人工智能·spring boot·websocket·网络协议·echarts