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

相关推荐
倒流时光三十年2 小时前
第1篇:你真的了解 Kafka 吗?—— 破冰篇
spring boot·分布式·kafka·linq
她说可以呀2 小时前
JWT令牌检验用户是否登录
java·spring boot·spring·java-ee·maven
夕除12 小时前
springboot--06
数据库·spring boot·mybatis
下次再写14 小时前
微服务架构实战:Spring Boot + Spring Cloud 从入门到精通
java·spring boot·spring cloud·微服务架构·服务注册与发现·分布式系统·api网关
阿丰资源14 小时前
基于Spring Boot的网上摄影工作室系统(源码一键运行)
java·spring boot·后端
计算机学姐15 小时前
基于微信小程序的图书馆座位预约系统【uniapp+springboot+vue】
vue.js·spring boot·微信小程序·小程序·java-ee·uni-app·intellij-idea
spencer_tseng19 小时前
Spring Boot 3.0+ jakarta.*
java·spring boot
PRINT!19 小时前
个人财富全景管理系统 AssetMe【内容均为AI制作】
spring boot·信息可视化·ai编程
jay神20 小时前
基于SpringBoot的宠物生命周期信息管理系统
java·数据库·spring boot·后端·web开发·宠物·管理系统