1.需要主从库开启GITD的配置并导出主库数据库
my.cnf
#开启gtid
enforce-gtid-consistency=true
gtid-mode=on
导出主库数据库
mysqldump -uusername -ppassword -h127.0.0.1 -P3306 --routines --single-transaction --master-data=2 --databases db1 db2 db3 > /home/db.sql
查看db.sql发现多了SET @@GLOBAL.GTID_PURGED='96b3421f-c5d2-11ec-8a68-fa163e621168:19085835,ed00fc98-c5d1-11ec-a60a-fa163e131e1b:1-610487';
2.将导出的主库数据移到从库节点进行数据导入并搭建主从
从库操作
i.reset master移除index文件中列出的所有的二进制日志文件,并创建一个新的空日志文件,从.000001重新开始。该命令不能在节点下还有从库在正常同步的情况下执行,否则从库会报错,找不到同步位置。
reset master;
ii.RESET SLAVE ALL会删除内存中的主从连接信息
reset slave all;
iii.导入主库数据到从节点
source /home/db.sql
iv.搭建主从关系
CHANGE MASTER TO
MASTER_HOST='192.168.10.101',
MASTER_USER='rep',
MASTER_PASSWORD='qazwsx',
MASTER_PORT=3306,
MASTER_AUTO_POSITION = 1;
v.开启主从
start slave;
3.如果需要搭建双主则需要在主库上执行第二步命令里边的ii,iv,v即可,禁止在节点下还有从库在正常同步的情况下执行reset master;,否则从库会报错,找不到同步位置。
如果之前做过双主,双主主从报错1236且一个节点需要重做的情况下,则需要在从节点执行上边的1.导出主库数据库,2.将导出的主库数据移到从库节点进行数据导入并搭建主从两步,3.主节点只需要执行reset slave,start slave;即可
Mysql中的Reset slave、reset slave all、reset master三者区别