我正在遵循GCP教程来从外部主文件创build副本实例。 Cloud SQL API已启用,并且正在使用来自控制台的Google shell来运行这些命令。 我也尝试从计算引擎实例使用gcloud身份validationlogin获取凭据,但运行到完全相同的问题。
我创build内部主没有任何问题:
ACCESS_TOKEN="$(gcloud auth application-default print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name": "int-clouddb5", "region": "us-central1-a", "databaseVersion": "MYSQL_5_5", "onPremisesConfiguration": {"hostPort": "79.xx.xx.xx:3306"}}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/my-project-222/instances
但是,当这样设置副本时:
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"replicaConfiguration": {"mysqlReplicaConfiguration": {"username": "xxxx", "password": "xxxxx", "dumpFilePath": "gs://xxxbucket-data/xxxxmpv2.sql" }}, "settings": {"tier": "D4","activationPolicy": "ALWAYS"}, "databaseVersion": "MYSQL_5_5", "masterInstanceName": "int-clouddb5", "name": "sla-clouddb3"}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/xxxxxx/instances
我收到以下错误信息:
{ "error": { "errors": [ { "domain": "global", "reason": "notAuthorized", "message": "The client is not authorized to make this request." } ], "code": 403, "message": "The client is not authorized to make this request." } }
GCP的支持build议使用我们中央1a,因为他们在其他地区有错误报告,但这并没有改变,这家伙似乎不理解我的要求。 有没有人知道那里有什么问题?
编辑:用于执行一切的帐户是所有者帐户,它拥有所有项目的所有权限。
示例使用$(gcloud auth application-default print-access-token)来获取请求的访问令牌,因此您要使用gcloud auth application-default login ,而不是gcloud auth login 。 您还需要确保您的帐户具有正确的权限来configuration外部主设备。
到目前为止,答案是Cloud SQL外部主复制已损坏。 支持小组的build议相当…嗯,我让你去判断。
*您好,根据与我们的后端团队的检查,已经提出的外部主复制的担心相似的错误。 有关的小组已经处理这个问题,但是没有提供解决预算的时间,尽pipe这已经是高度优先的事情了。 与此同时,正在build议下面的解决方法:
a。)使用mysqldump停机时间[1]
b。)使用GCE实例进行复制[2] *
我希望这是有帮助的。 如果您需要进一步澄清,请告诉我。 此致E. Google云平台支持