![深入理解MySQL主从原理](https://wfqqreader-1252317822.image.myqcloud.com/cover/513/37423513/b_37423513.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.3 搭建GTID AUTO_POSITION MODE的主从
在这一部分中,获取gtid-purged变量是需要注意的地方,也是笔者在线上遇到的一个“坑”,这个“坑”还比较普遍。简单来说,就是在MySQL 5.7的某些版本中,导入数据会覆盖原本命令set gtid_purged的设置,而gtid_executed表并不是实时更新的,因此在从库重启后可能导致数据重复拉取,进而导致主从同步报错。
注意,主备库必须开启GTID并设置好server_id:
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_30.jpg?sign=1738925749-JsnDtGmPpezTyrgvBaU9Q9T6zRk7iKZA-0-9b0b57d1ec9d955b51378a9c06505001)
同时,主从库都开启 binary log。如果不设置级联从库,那么从库不需要开启参数log_slave_updates。
(1)建立复制用户并且授权。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_31.jpg?sign=1738925749-TSS1cK4dXmJ7xVBQE9ZgfMrOkCVQpvmW-0-c46582d28e16d1da7600cfa144eda301)
(2)导出数据。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_32.jpg?sign=1738925749-6xvqbNobalFp1ZjAdHOS01X4WlLLSxPB-0-32ad253fef961a4a4a9be40b4806e3b7)
(3)从库导入数据。
使用命令mysql-e "source xxx.sql" 导入数据。
(4)从库执行reset master命令。
这一步主要防止gtid_executed表在导入数据的过程中被覆盖,我们在MySQL 5.7的某些版本中遇到过这种情况。一旦从库再次重启,读取 gtid_executed 表就会得到错误的 gtid_executed变量,进而导致从库启动失败。因此最好重新设置gtid_purged变量。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_33.jpg?sign=1738925749-muk7Eq1JG8A2782dSwqdvX6meMFPgw2a-0-211aab97fac266a21a7796a10bc174d8)
(5)提取gtid_purged变量,并且执行。
使用head-n 40命令可以快速得到gtid_purged变量,例如:
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_34.jpg?sign=1738925749-xqgveHTmGdhMVrNIJMEXk0uDgz0wtxf4-0-c3d70848750e89b5c67d16426c40f436)
执行
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_35.jpg?sign=1738925749-F9VYZw9EgRML4psTEsBHA82WpzyL7VJr-0-965986d24335e2fdf8560e8c2d360d73)
即可,完成本步骤后,mysql.gtid_executed表会重构,这个我们在1.2节的通用修改时机中已经讨论过了。
(6)使用MASTER_AUTO_POSITION建立同步。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_36.jpg?sign=1738925749-d86GtddAFmIvsUbSmo8K3VUzxdybgzka-0-325e50d9d1b7d70c2e7108484e1354a1)
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_37.jpg?sign=1738925749-D64BNuv8fl8frC7p6Awylr7zvzmtH6yA-0-011fb0b272ad49669419e169def2656b)
(7)启动slave。
![](https://epubservercos.yuewen.com/A01218/19823444008569806/epubprivate/OEBPS/Images/txt001_38.jpg?sign=1738925749-2oN7XMuEnFEJXCK6Nw2GiqIk3F75RGdQ-0-45bb9f3b4c0abf5cf736f24c2e8b83a4)