我目前正在尝试将mysqldump(~60GB(导入到Google Cloud sql数据库实例中,包括触发器和存储的程序。
我已经使用 terraform 将log_bin_trust_function_creators设置为 true/on,并使用 perl 从我的触发器中删除了 DEFINER 部分。
我尝试使用 gcloud sql 导入函数和 Web 控制台(从存储桶导入(进行导入,每次在堆栈驱动程序中弹出相同的错误时。
严重性:"错误">
文本有效负载:"2018-06-26T10:48:42.727799Z 87406 [警告] 使用 unique_checks=0 这是不确定的!
Afaik unique_checks在倾销期间设置,以加快进口速度。
我无法在互联网上找到任何东西。
有人可以告诉我错误的含义以及如何修复它吗?
我想避免再次转储数据库,因为它需要很长时间。
我必须指出,我只是使用了基本的 mysqldump,没有这里建议的参数,因为我刚刚找到了这篇文章。
此致敬意
麦克斯
警告(而不是错误!(与数据的导入没有直接关系,而是与在目标MySQL环境中配置复制的方式有关。
正如MySQL文档关于确定二进制日志记录中的安全和不安全语句所说(突出显示是我的(:
MySQL 复制中语句的"安全性"是指是否 可以使用以下命令正确复制语句及其效果 基于语句的格式。如果该语句属实,我们参考 声明为安全;否则,我们将其称为不安全。
通常,如果语句是确定性的,则它是安全的,如果它是不安全的,则不安全。 莫。
。
对系统变量的引用。大多数系统变量不是 使用基于语句的格式正确复制。请参阅部分 17.4.1.39,"复制和变量"。有关例外情况,请参见第 5.4.4.3 节 "混合二进制日志记录格式"。
unique_checks=0
设置一个系统变量,代码可能在全局级别设置它,这在基于语句的复制中被认为是不安全的。
更改代码以在会话级别设置unique_checks=0
(推荐(,或将二进制日志记录类型更改为mixed
。
Cloud SQL和标准MySQL功能之间存在一些差异,您必须注意这些差异。这里的问题很可能在触发器中。您可以尝试禁用二进制日志。看看这个SO帖子。
但是,正确的方法是按照您提到的文档执行MySQL转储。
如果上述步骤都无法完成工作,请在 Cloud SQL 实例的日志中发布您遇到的错误。