如何在启用了二进制模式的Google SQL中导入sql文件?

我有一个错误的数据库:

语句中出现了ASCII'\ 0',但这是不允许的,除非启用了选项--binary-mode且mysql以非交互模式运行。如果需要ASCII'\ 0',则将--binary-mode设置为1。

我包括通过控制台导入数据库,gcloud sql import sql mydb gs://my-path/mydb.sql --database=mydb但在文档中没有看到二进制模式的任何标志。有可能吗?

可选-通过MySQL Workbench导入时,是否可以设置此标志。我在那里也没有看到任何有关它的信息,但可能是我缺少某些设置或某些信息。如果可以设置该标志,则可以通过MySQL Workbench导入数据库。

谢谢。

佐沃恩

根据源数据库的托管位置,Cloud SQL或内部部署环境,在导出过程中会设置适当的标志,因此转储文件与目标数据库兼容。

由于您要导入从本地环境中导出的文件,因此mysqldump建议执行导出的方法。

首先,按照文档中的建议创建转储文件请务必注意以下两点:

  • 不要导出客户创建的MySQL用户。这将导致导入到新实例失败。而是手动创建所需的MySQL用户
  • 确保已经配置了适当的标志,以确保转储文件将包含所需的所有必要详细信息。例如触发器,存储过程等

然后,创建一个Cloud Storage Bucket,并将转储文件上传到存储桶。

在继续导入之前,将存储对象管理员角色授予目标Cloud SQL实例的服务帐户。您可以使用以下命令执行此操作

gsutil iam ch serviceAccount:[SERVICE-ACCOUNT]:objectAdmin gs://[BUCKET-NAME]

您可以在Cloud SQL实例概述中找到上述服务帐户,或通过运行以下命令:

gcloud sql instances describe [INSTANCE_NAME]

该服务帐户将在serviceAccountEmailAddress现场提及

现在,您可以从控制台或使用gcloud命令或REST API进行导入。

Google文档中的更多详细信息

导入/导出数据的最佳做法

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章