mysql - 将数据从本地 MySQL master 逐步复制到 Google Cloud SQL Slave

标签 mysql replication google-cloud-sql

我需要将数据从本地数据库主数据库(使用 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 or MYSQL_5_6

由于您插入的是 5.6.39,因此会触发 400 错误。

关于mysql - 将数据从本地 MySQL master 逐步复制到 Google Cloud SQL Slave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49779178/

相关文章:

postgresql - 如何检查 PostgreSQL 中的复制延迟?

postgresql - 将 csv.gzip 从 Google 存储导入到 CloudSQL

postgresql - 使用 IAM 用户从 Azure Data Studio 连接到 Cloud SQL

kubernetes - 如何使用 kubernetes 服务连接到您的 Cloud SQL 实例?

c# - 从 DataGridView 自动更新数据库中的值

mysql - 根据外部条件从联接中仅选择一行

sql - 这个 SQL 有效吗?

mysql - 无法使 MySQL 功能工作

mysql - 设置了只读的从属服务器上存储过程中的临时表

java - Ehcache 复制缓存 RMI Bootstrap