MySQL 互为主备的实现教程
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 互为主备内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
ERROR 1862 (HY000): Your password has expired. To log in you
当你在安装 MySQL过程中,通过mysqld --initialize 初始化 mysql 操作后,生成临时密码后,没有直接进行 MySQL连接,中途重启服务或者重启机器等,导致密码失效问题,怎么处理呢,感兴趣的朋友一起看看吧2019-11-11


最新评论