我目前正在尝试将mysqldump(~60gb)导入googlecloudsql数据库示例,包括触发器和存储过程。
我已经使用terraform将log\bin\u trust\u function\u creators设置为true/on,并使用perl从触发器中剥离了definer部分。
我使用gcloud sql import函数和web控制台(从存储桶导入)尝试导入,每次都会在stackdriver中弹出相同的错误。
严重性:“错误”
textpayload:“2018-06-26t10:48:42.727799z 87406[警告]使用唯一的检查=0,这是不确定的!”
在转储期间设置afaik unique\ U检查以加快导入。
我在网上找不到任何东西。
有人能告诉我这个错误是什么意思吗?我怎样才能改正它?
我希望避免再次转储数据库,因为这需要很长时间。
我必须注意,我只是使用了基本的mysqldump,没有这里建议的参数,因为我刚刚找到了这篇文章。
致以最诚挚的问候,
最大值
2条答案
按热度按时间yi0zb3m41#
警告(而不是错误!)与数据的导入没有直接关系,而是与在目标mysql环境中如何配置复制有关。
正如mysql关于在二进制日志中确定安全和不安全语句的文档所说(突出显示是我的):
mysql复制中语句的“安全性”是指是否可以使用基于语句的格式正确复制语句及其效果。如果该声明属实,我们将该声明称为安全声明;否则,我们称之为不安全。
一般来说,如果一个语句是确定的,那么它是安全的;如果它不是确定的,那么它是不安全的。
...
对系统变量的引用。大多数系统变量没有使用基于语句的格式正确复制。见第17.4.1.39节“复制和变量”。有关例外情况,请参阅第5.4.4.3节“混合二进制日志记录格式”。
unique_checks=0
设置系统变量,代码可能会将其设置为全局级别,这在基于语句的复制中被认为是不安全的。或者将代码更改为set
unique_checks=0
在会话级别(推荐),或将二进制日志记录类型更改为mixed
.brgchamk2#
云sql和标准mysql功能之间有一些区别,您必须注意。这里的问题很可能是触发器。您可以尝试禁用二进制日志。看看这篇文章。
不过,正确的方法是按照您提到的文档进行mysql转储。
如果以上步骤都无法完成,请在cloudsql示例的日志中发布错误。