Cloud SQL for MySQL小补丁升级执行后版本未更新问题
Cloud SQL for MySQL 小版本升级未生效问题排查
问题原因
你执行的补丁命令没有携带目标数据库版本参数,实际向GCP接口提交的配置修改内容为空,等于没有提交任何变更请求,所以就算命令返回执行成功,也根本没有触发升级流程。后续手动重启实例也不会生效,单纯的实例重启不会自动触发小版本更新。
从你贴的命令输出就能看到问题,实际发送的接口请求里settings字段是空对象,没有任何配置改动:
$ gcloud sql instances patch mysqldb The following message will be used for the patch API method. {"name": "mysqldb", "project": "myproject", "settings": {}} Patching Cloud SQL instance...done. Updated [https://sqladmin.googleapis.com/sql/v1beta4/projects/myproject/instances/mysqldb].
根据2022年5月26日的Cloud SQL发布说明,当时已经正式支持MySQL 8.0.29小版本,但全新创建的实例默认版本仍为8.0.26,现有实例需要主动触发操作才能完成升级:
2022年5月26日
Cloud SQL for MySQL现已支持8.0.29小版本,现有实例升级可参考官方数据库小版本升级文档的操作流程执行。
正确升级操作
触发小版本升级时,必须在patch命令中通过--database-version参数明确指定目标版本号,升级到8.0.29的正确命令如下:
gcloud sql instances patch mysqldb --database-version=MYSQL_8_0_29
执行命令后确认弹出的变更提示,等待实例状态从UPDATING恢复为RUNNABLE后再核查版本即可,升级是异步执行过程,不要刚提交完命令就立刻检查版本。
踩坑提醒
- 不带任何参数执行
gcloud sql instances patch只会发送空请求,接口会直接返回成功,但不会对实例做任何实际修改,不要被这个返回结果误导。 - 手动重启实例不会触发自动小版本升级,自动升级仅会在实例预设的维护窗口内由GCP后台推送执行。
- 如果命令参数正确但升级仍未生效,先检查实例是否存在未完成的备份任务、只读副本是否同步延迟过高,这类前置校验不通过时升级任务会被后台直接拦截取消,不会弹出显性报错。
你提供的实例版本、操作结果参考截图如下:

内容的提问来源于stack exchange,提问作者Evandro Pomatti
相关产品推荐
相关产品推荐

