我有一个错误的数据库:
语句中出现了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
建议执行导出的方法。
首先,按照文档中的建议创建转储文件。请务必注意以下两点:
然后,创建一个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] 删除。
我来说两句