一次通过BINLOG恢复数据时报:

ERROR 1781 (HY000): @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF


场景说明:

一次误删数据删除还原,直接把BINLOG文件导成SQL文件形式(mysqlbinlog mysql-bin.000020>a20.sql),在通过source 方式进行数据的还原,导致提示错误信息1781

问题1:线上并未启动GTID功能,那通过这样导出的SQL文件怎么又GTID的信息呢? 可能是......





解决办法:

1、在导出的增量日志去掉GTID

sed -i 's/SET @@SESSION.GTID_NEXT/#SET @@SESSION.GTID_NEXT/g' aa.sql

2、对于5.7版本之前执行SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE 是无法执行,提示静态参数,5.7哪怕你查看的已经是OFF,在不执行参数前一样报错。

3、在使用mysqlbinlog解析binlog日志时指定--skip-gtids=true,解析出来的文件就不会包含SET @@SESSION.GTID_NEXT=