使用mysqldump导出数据的时候收到选项 set-gtid-purged=AUTO的影响和非GTID下导出不同。如果在GTID开启情况下使用如下语句导出数据: mysqldump --single-transaction --master-data=2 -R -E --triggers --all-databases 在GTID开启的情况下会多如下设置: set @@MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN; SET @@SESSION.SQL_LOG_BIN=0; -- --GTID state at the beginning of the backup -- set @@GLOBAL.GTID_PURGED='b660b07e-7d26-11e9-92f1-005056ae9ab5:1-226'; 设置原因: 因为如果我们使用这个备份做主从,是否生成binary log Event就意味着在导入数据的时候是否基于本地数据库生成新的GTID,如果生成了本地GTID显然是不对的,所以将SQL_LOG_BIN设置为0是必须的。 接着需要进行gtid_purged变量的设置,gtid_purged变量的设置会修改下面几个地方: 1.mysql.gtid_executed表 2.gtid_purged变量 3.gtid_executed变量 当然也可以使用 --set-gtid-purged=OFF 选项来告诉mysqldump我不需要设置SQL_LOG_BIN = 0和gtid_purged变量,但是初始化搭建主从的时候一定不要设置为OFF。 --set-gtid-purged[=name] Add 'SET @@GLOBAL.GTID_PURGED' to the output. Possible values for this option are ON, OFF and AUTO. If ON is used and GTIDs are not enabled on the server, an error is generated. If OFF is used, this option does nothing. If AUTO is used and GTIDs are enabled on the server, 'SET @@GLOBAL.GTID_PURGED' is added to the output. If GTIDs are disabled, AUTO does nothing. If no value is supplied then the default (AUTO) value will be considered.
来源:https://www.cnblogs.com/DBA-3306/p/12632978.html