A<-->B 数据互通首先A客户机和B客户机要互通为了方便使用,本文ip不再以明文方式显示"C:WindowsSystem32driversetchosts" 在这里修改ip192.168.124.88 node1 192.168.124.44 node2其中node1和node2为客户机ip数据库A 为node1,数据库B 为node2
数据库A配置

加到my.ini中 (C:ProgramDataMySQLMySQL Server 8.0)
server-id=1log-bin=mysql-binbinlog_format=ROWgtid_mode=ONenforce_gtid_consistency=ONlog_slave_updates=ONauto_increment_increment=2auto_increment_offset=1
数据库B配置
加到my.ini中
server-id=2log-bin=mysql-binbinlog_format=ROWgtid_mode=ONenforce_gtid_consistency=ONlog_slave_updates=ONauto_increment_increment=2auto_increment_offset=2
配置保存后重启mysql
数据该同步同步,后面不可以再操作数据!!!!!!!!!
数据库A操作
STOP REPLICA;RESET REPLICA ALL;RESET MASTER; --必须执行,且执行后不得再有任何数据库操作CREATE USER 'repl'@'%' IDENTIFIED BY 'Repl@123456';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;-- 下面两条是为了改密码配置,8.0以上直接执行就行ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl@123456';FLUSH PRIVILEGES;
数据库B操作
STOP REPLICA;RESET REPLICA ALL;RESET MASTER;如果在数据库A已经创建,数据库B中可以无需操作,会自动同步过来CREATE USER 'repl'@'%' IDENTIFIED BY 'Repl@123456';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Repl@123456';FLUSH PRIVILEGES;
前置条件完成
不可操作任何数据库数据了!!!
先把数据库A做主,B做从
在B数据库中执行
CHANGE REPLICATION SOURCE TOSOURCE_HOST='node1',SOURCE_PORT=3306,SOURCE_USER='repl',SOURCE_PASSWORD='Repl@123456',SOURCE_AUTO_POSITION=1;START REPLICA;-- 到这就结束了
验证是否互通
-- 验证是否互通SHOW REPLICA STATUS;
查询结果看这三个字段
Replica_IO_Running: YesReplica_SQL_Running: YesSeconds_Behind_Source: 0
此时 A->B完成
再把数据库B做主,A做从
在A数据库中执行
CHANGE REPLICATION SOURCE TOSOURCE_HOST='node2',SOURCE_PORT=3306,SOURCE_USER='repl',SOURCE_PASSWORD='Repl@123456',SOURCE_AUTO_POSITION=1;START REPLICA;-- 到这就结束了
验证是否互通
-- 验证是否互通SHOW REPLICA STATUS;
查询结果看这三个字段
Replica_IO_Running: YesReplica_SQL_Running: YesSeconds_Behind_Source: 0
此时 B->A完成
这个过程中,千万不要动msyql数据,不然前功尽弃!!!