You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Cloud SQL外部副本降级主实例:MySQL8.0源表示创建失败

解决Google Cloud SQL源表示实例创建时MySQL 8.0版本的参数错误问题

你遇到的问题并不是源表示实例不支持MySQL 8.0,而是**databaseVersion参数的格式不符合API要求**导致的报错。

问题根源

Google Cloud SQL的API对databaseVersion参数有明确的枚举值规范:

  • 对于MySQL 5.x系列,API可以兼容简写的5(后台会自动映射到对应的稳定大版本,比如MYSQL_5_7
  • 但MySQL 8.0系列必须使用完整的版本标识字符串,不能简写为8——API无法识别这种简写,所以会抛出"Missing parameter: DatabaseVersion"的错误,本质是参数值不合法而非缺失。

修正后的API调用命令

databaseVersion的值改为MYSQL_8_0即可,调整后的完整命令如下:

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{ "name": "[SOURCE_REPRESENTATION_NAME]", "region": "[REGION]", "databaseVersion": "MYSQL_8_0", "onPremisesConfiguration": { "hostPort": "[EXTERNAL_SERVER_IP]:[EXTERNAL_SERVER_PORT]" } }' \
-X POST \
https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances

额外注意事项

  • 确认你的外部MySQL服务器确实是8.0版本(小版本如8.0.30等都可以兼容MYSQL_8_0这个标识)
  • 检查JSON请求体的格式是否正确,比如引号、逗号是否都正确闭合,格式错误也可能导致API误判参数缺失

内容的提问来源于stack exchange,提问作者Rohit Bohara

火山引擎 最新活动