我需要将数据从本地数据库主数据库(使用MySQL 5.6)复制到Google Cloud SQL从属服务器。我阅读了谷歌说明,直到现在我才这样做:
- 在本地机器上安装 MySQL 5.6,并创建本地实例、数据库和表;
- 设置为使用二进制文件(这是复制所必需的);
- 创建用户"副本"以访问主;
- 使用 mysqldump 创建了备份.sql文件,我按照谷歌说明进行操作;
- 将此文件上传到谷歌存储桶;
- 在谷歌云SQL中创建1º代实例;
- 将数据库创建为1º生成实例;
- 恢复备份.sql到数据库;
谷歌指令的下一步是在谷歌外壳中输入代码"ACCESS_TOKEN="...
ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}"
--header 'Content-Type: application/json'
--data '{"name": "[INTERNAL_MASTER_INSTANCE_NAME]",
"region": "[REGION_NAME]",
"databaseVersion": "[EXTERNAL_MASTER_DATABASE_VERSION]",
"onPremisesConfiguration": {"hostPort": "[IP_ADDRESS:PORT]"}}'
-X POST
https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
但是我收到一条错误消息"400 - 无效值:5.6.39 不是有效值"。我在哪里可以找到MySQL中的"databaseVersion":"[EXTERNAL_MASTER_DATABASE_VERSION]"?有人逐步使用MySQL配置本地数据库以将数据复制到Google Cloud SQL?
根据配置外部主控服务器文档,数据库版本有 2 个选项:
对于数据库版本,请提供主实例的 MySQL 版本:
MYSQL_5_5
或MYSQL_5_6
由于您插入的是 5.6.39,因此它会触发 400 错误。