我尝试使用以下命令导入存储在云存储中的数据库:
gcloud sql instances import instance-name gs://connect-to-the-cloud-sql.appspot.com/my-cloud-sql-instance-backup
但是,我收到了错误:
ERROR: (gcloud.sql.instances.import) HTTPError 403: The client is not authorized to make this request.
我已经使用以下方式登录:
gcloud auth login
答案 0 :(得分:2)
确保实例名称正确无误。我有同样的错误,一旦我更正了实例名称它就消失了。
答案 1 :(得分:1)
我遇到了这个问题,我的实例名称正确。原来我在错误的GCP项目中。确保切换到正确的[目标]项目或使用项目参数:
gcloud sql instances export my-cloud-sql-instance gs://connect-to-the-cloud-sql.appspot.com/my-cloud-sql-instance-backup --project=<your target project>
答案 2 :(得分:1)
这听起来似乎太明显了,但是您的服务帐户确实可能缺少导入数据的访问权限。检查是否在IAM&Admin页面上安装了正确的cloudsql.instances.import
策略。
答案 3 :(得分:1)
在我的情况下,这是因为cloud sql实例服务帐户对我要从中导入的存储桶没有正确的权限。
描述您要导入到的实例:
gcloud sql instances describe [INSTANCE_NAME]
复制serviceAccountEmailAddress
字段。
使用gsutil iam
向存储桶的服务帐户授予legacyBucketWriter
和objectViewer
Cloud IAM角色。
导入数据库:
gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
--database=[DATABASE_NAME]