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

相关推荐
gugucoding1 小时前
59. 【Java】Spring Boot 入门:第一个 Web 应用
java·开发语言·spring boot
宠友信息4 小时前
内容社区源码开发实践解析,用Spring Boot打造1:1仿小红书源码平台
java·spring boot·redis·websocket·mysql·spring·uni-app
Su米苏5 小时前
Redis高级用法
spring boot·redis
paopaokaka_luck5 小时前
基于springboot3+vue3的车间生产管理系统(Echarts图形化分析、BI报表)
java·前端·spring boot·学习·echarts
摇滚侠8 小时前
《SpringBoot 3:入门与应用实战》第 7 章 AOP 思想与实现 阅读笔记 13
java·spring boot·笔记
FYKJ_20108 小时前
springboot网上购书商城---附源码15749
java·spring boot·后端·python·spark·django·php
爱学堂IT分享8 小时前
码神之路-Netty-从零实现RPC框架+SpringBoot实战项目教程
spring boot·网络协议·rpc
evans在进步9 小时前
Spring Boot 启动流程与 @SpringBootApplication 核心原理详解
java·spring boot·后端
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 6 章 Spring Boot 最佳实践 阅读笔记 12
android·spring boot·笔记
黑马程序员毕设10 小时前
非遗文化展览系统设计与实现
人工智能·spring boot·后端·微信小程序·毕设