mysql gtid唯一性问题
Posted python真好用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql gtid唯一性问题相关的知识,希望对你有一定的参考价值。
什么是GTID:从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式。通过 GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。
背景:在A机器上mysqldump导出了一份数据文件full1.sql
将full1.sql放到B机器上运行时发生了一下报错。
原因:1.mysqldump导出的时候顺便将A机器的gtid也导出来了,这个值是唯一的,B机器上已经有了gtid,所以导入时会报错
[root@mysql-6-58 backup]# mysql -uroot -p'xxxxx' < full1.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.
解决办法:
1.mysqldump时添加参数–set-gtid-purged=off参数,避免将gtid信息导出
2.数据库里reset mater,重新将GTID_EXECUTED值置空
3.在导出的文件中将以下内容删掉(亲测有效)@@GLOBAL.GTID_PURGED='7706e90e-c8c2-11eb-a39f-005056ae51f6:5-9, d3672032-c801-11eb-9a70-005056aeb414:1-14'; ```
以上是关于mysql gtid唯一性问题的主要内容,如果未能解决你的问题,请参考以下文章