You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDBC连接MySQL的应用构建失败,报Unknown system variable 'query_cache_size'异常

解决JDBC连接MySQL时的"Unknown system variable 'query_cache_size'"错误

这个问题我之前帮不少开发者排查过,本质就是MySQL驱动版本和数据库版本不兼容导致的!

问题根源

从MySQL 8.0版本开始,官方已经彻底移除了查询缓存功能,连带query_cache_size这个系统变量也被删掉了。但你当前使用的mysql-connector-java-5.1.41是比较老旧的驱动版本,它启动时还会尝试读取这个已经不存在的变量,所以直接抛出了这个SQLException。

两种解决方案

方案一:升级MySQL驱动版本(推荐)

把驱动版本升级到适配MySQL 8.0+的稳定版,比如8.0.33(或者最新的兼容版本)。

如果是Maven项目,修改pom.xml中的依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

升级后需要注意两个细节:

  • JDBC驱动类名要替换成com.mysql.cj.jdbc.Driver,旧的com.mysql.jdbc.Driver已经被标记为过时,8.x驱动默认使用新类名
  • 连接URL建议加上时区参数,比如jdbc:mysql://localhost:3306/your_db?serverTimezone=UTC&useSSL=false,避免时区相关的额外报错

方案二:降级MySQL版本(不推荐)

如果因为项目限制暂时无法升级驱动,只能把你的MySQL数据库降级到5.7及以下版本——因为5.7还保留着查询缓存相关的系统变量,老驱动可以正常识别。不过这个方案只是权宜之计,毕竟MySQL 5.7已经进入维护阶段,长期来看还是升级驱动更稳妥。

额外提示

如果你用的是Spring Boot项目,其实可以不用手动指定驱动版本,Spring Boot的父依赖会根据你引入的MySQL相关starter自动适配合适的驱动版本,确保版本兼容性。

内容的提问来源于stack exchange,提问作者Kiến Trần Trung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:06:27