MySQL 互为主备的实现教程
作者:ChristXlx
本文主要介绍了MySQL 互为主备的实现教程,包括正确编辑my.ini配置文件、确保数据库操作前置条件完成以及避免在关键步骤中修改数据库数据,以确保配置成功
mysql互为主备
A<-->B 数据互通 首先A客户机和B客户机要互通 为了方便使用,本文ip不再以明文方式显示 "C:\Windows\System32\drivers\etc\hosts" 在这里修改ip 192.168.124.88 node1 192.168.124.44 node2 其中node1和node2为客户机ip 数据库A 为node1,数据库B 为node2
数据库A配置
加到my.ini中 (C:\ProgramData\MySQL\MySQL Server 8.0)
server-id=1 log-bin=mysql-bin binlog_format=ROW gtid_mode=ON enforce_gtid_consistency=ON log_slave_updates=ON auto_increment_increment=2 auto_increment_offset=1
数据库B配置
加到my.ini中
server-id=2 log-bin=mysql-bin binlog_format=ROW gtid_mode=ON enforce_gtid_consistency=ON log_slave_updates=ON auto_increment_increment=2 auto_increment_offset=2
配置保存后重启mysql
数据该同步同步,后面不可以再操作数据!!!!!!!!!
这个过程中,千万不要动msyql数据,不然前功尽弃!!!
数据库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 TO SOURCE_HOST='node1', SOURCE_PORT=3306, SOURCE_USER='repl', SOURCE_PASSWORD='Repl@123456', SOURCE_AUTO_POSITION=1; START REPLICA; -- 到这就结束了
验证是否互通
-- 验证是否互通 SHOW REPLICA STATUS;
查询结果看这三个字段
Replica_IO_Running: Yes Replica_SQL_Running: Yes Seconds_Behind_Source: 0
此时 A->B完成
最好是通了再做下面的
再把数据库B做主,A做从
在A数据库中执行
CHANGE REPLICATION SOURCE TO SOURCE_HOST='node2', SOURCE_PORT=3306, SOURCE_USER='repl', SOURCE_PASSWORD='Repl@123456', SOURCE_AUTO_POSITION=1; START REPLICA; -- 到这就结束了
验证是否互通
-- 验证是否互通 SHOW REPLICA STATUS;
查询结果看这三个字段
Replica_IO_Running: Yes Replica_SQL_Running: Yes Seconds_Behind_Source: 0
此时 B->A完成
这个过程中,千万不要动msyql数据,不然前功尽弃!!!
到此这篇关于MySQL 互为主备的实现教程的文章就介绍到这了,更多相关MySQL 互为主备内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
