在Mysql5.7的版中使用了gtid复制,可以多线程复制,同时也省去了记binlog起始点的烦恼;
但是在一次测试环境中通过binlog日志来恢复误删数据时却耗了不少时间;
[root@mysql-01 tmp]# mysqlbinlog --no-defaults mysql-bin.000018 --start-position="4" --stop-position="1102" |mysql test
ERROR 1781 (HY000) at line 17: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.
最终根据文档:在Mysql命令行中执行一下命令即可,解决问题;
哪怕你查看的已经是OFF了;
mysql> show global variables like 'gtid_mode';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| gtid_mode | OFF |
+---------------+-------+
1 row in set (0.00 sec)
最终,通过以下命令解决问题;
set @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
导入日志记录:
mysqlbinlog --no-defaults --start-position="441" mysql-bin.00000*| mysql test
就不会再报那个错了;