MySQL互为主备实现教程

作者:袖梨 2026-06-25

mysql互为主备

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配置

MySQL互为主备的实现教程

加到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

数据该同步同步,后面不可以再操作数据!!!!!!!!!

这个过程中,千万不要动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 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数据,不然前功尽弃!!!

相关文章

精彩推荐