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.318.0.46 建议用 8.0.33 / 9.x 驱动均可。✅ pom.xmldependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId version8.0.33/version /dependency⚠️ 不要再使用com.mysql.jdbc.Drivermysql-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?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue username: root password: root123 关键参数说明参数是否必须说明driver-class-name✅必须是com.mysql.cj.jdbc.DriverserverTimezone✅防止时区错误推荐 Asia/ShanghaiuseSSLfalse✅本地开发建议关闭allowPublicKeyRetrievaltrue✅解决 8.0 认证插件问题useUnicodetrue✅中文不乱码三、Druid 连接池完整示例可选如果你在用DruidRuoYi / 很多项目都用spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/test_db?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue 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 写法如果你用 propertiesspring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3306/test_db?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue spring.datasource.usernameroot spring.datasource.passwordroot123五、常见错误 解决方案❌ 1. 启动报错Unknown system variable query_cache_size✅原因MySQL 8.0 已移除查询缓存✅解决JDBC URL 中不要带useLegacyDatetimeCodefalse等过时参数❌ 2. 报错caching_sha2_password cannot be loaded✅原因客户端驱动太老✅解决升级到mysql-connector-j 8.0.33❌ 3. 时间差 8 小时✅解决URL 中加serverTimezoneAsia/Shanghai六、MySQL 8.0.46 最佳实践总结 ✅✅ 驱动mysql-connector-j 8.0.33✅ Drivercom.mysql.cj.jdbc.Driver✅ URL 必带参数useSSLfalse serverTimezoneAsia/Shanghai allowPublicKeyRetrievaltrue如果你愿意可以把你的Spring Boot 版本 是否用 Druid 当前报错日志贴出来我可以帮你精确排查 ✅