解决 ERROR 1840 (HY000) at line 2: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty
mysql导入.sql文件报错 ERROR 1840 (HY000) at line 2: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty,发现是如下代码引起的
SET @@GLOBAL.GTID_PURGED='95074e72-cd26-11e9-bf8c-00163e040187:1-2627511705,
96a11121-cd26-11e9-913e-00163e06cf2d:1-1625785';
两种方法
1.reset master 将当前库的GTID_EXECUTED值置空
2.批量注释掉文本中的的相关代码
因为文件较多,且文件较大,windows下文本编辑器很难打开。linux就是很好地选择了。
sed -i “s/需要替换的内容/替换之后的内容/g” grep -rl "需要查找的内容" 查找的路径
sed -i "s/SET @@GLOBAL.GTID_PURGED='95074e72-cd26-11e9-bf8c-00163e040187:/-- SET @@GLOBAL.GTID_PURGED='95074e72-cd26-11e9-bf8c-00163e040187:/g" `grep -rl "SET @@GLOBAL.GTID_PURGED='95074e72-cd26-11e9-bf8c-00163e040187:" /home/logsaas/mysqldata/gambling/qz/9.hszytyxx/tmp/sql`
该命令可以对文件夹下所有文件中含有相关字符的内容进行批量替换
然后再去执行就没有任何问题了。