我需要将数据从本地数据库主数据库(使用 MySQL 5.6)复制到 Google Cloud SQL 从数据库。我阅读了谷歌的说明,直到现在我都做到了:
- 在本地计算机上安装 MySQL 5.6 并创建本地实例、数据库和表;
- 设置为使用二进制文件(复制所必需的);
- 创建了用户“replica”以访问主服务器;
- 使用 mysqldump 创建了 backup.sql 文件,并按照 google 说明进行操作;
- 将此文件上传到 Google 存储桶;
- 在 Google Cloud SQL 中创建了 1° 生成实例;
- 在 1° 生成实例中创建数据库;
- 将 backup.sql 恢复到数据库中;
Google 指令中的后续步骤是在 Google Shell 中输入代码“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 了吗?
最佳答案
基于Configuring External Masters文档中,您有 2 个数据库版本选项:
For databaseVersion, provide the MySQL version of the master instance:
MYSQL_5_5
orMYSQL_5_6
由于您插入的是 5.6.39,因此会触发 400 错误。
关于mysql - 将数据从本地 MySQL master 逐步复制到 Google Cloud SQL Slave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49779178/