TeamCity从MySQL 5.7升级至8重启后出现query_cache_size错误求助
解决TeamCity连接MySQL 8.0时的
query_cache_size错误 问题原因
MySQL 8.0已彻底移除查询缓存相关系统变量(包括query_cache_size),而旧版MySQL JDBC驱动(5.x系列)仍会尝试读取这些变量,导致连接失败。你添加的disableQueryCache=true参数仅对旧驱动适配MySQL 5.7有效,对MySQL 8.0不适用。
解决方案
1. 确认TeamCity版本兼容性
确保使用的TeamCity版本支持MySQL 8.0:TeamCity 2020.2及以上版本官方支持MySQL 8.0,旧版本可能存在兼容问题,建议升级到对应版本的官方Docker镜像。
2. 修正数据库连接配置
修改database.properties文件,更新以下两项:
- 驱动类替换为MySQL 8.0专用的CJ驱动:
connectionDriverClass=com.mysql.cj.jdbc.Driver - 调整连接URL,移除无效的
disableQueryCache参数,添加MySQL 8.0必需的时区参数:connectionUrl=jdbc:mysql://NAME-ID.us-east-1.rds.amazonaws.com:3306/teamcity?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
3. 验证驱动版本
官方TeamCity镜像中,对应支持MySQL 8.0的版本已内置mysql-connector-java 8.x驱动,无需手动安装。如果使用的是旧版TeamCity镜像,需替换驱动包:
- 进入Docker容器,找到TeamCity的
lib/jdbc目录 - 删除旧的
mysql-connector-java-*.jar文件 - 放入对应版本的
mysql-connector-java-8.0.x.jar包 - 重启TeamCity服务
4. 清理缓存并重启
- 清空TeamCity的缓存目录(默认在
/data/teamcity_server/datadir/system/cache) - 重启TeamCity容器,确认连接错误是否消除
内容的提问来源于stack exchange,提问作者Emme
相关产品推荐
相关产品推荐

