MySQL主主架构实施
MySQL 的主主模式(也称为双主复制或双向复制)是一种高级的数据库复制配置,其中两台 MySQL 服务器彼此互为主服务器和从服务器。这种模式允许在两台服务器上同时进行读写操作,并将变更复制到对方,从而实现高可用性和负载均衡
主主模式的原理
- 双向复制:在主主模式中,每台服务器既充当主服务器,也充当从服务器。A 服务器上的所有更改会复制到 B 服务器,反之亦然。
- 自动故障转移:如果其中一台服务器发生故障,另一台服务器可以继续提供服务,保证了系统的高可用性。
- 负载均衡:通过将读写请求分散到两台服务器上,可以分担系统的压力。
准备两台 PC,都安装好相近版本的 mysql,可以互相 ping 通,提前开放好 mysql 端口
主机A配置:
1.编辑 my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
auto-increment-increment=2
auto-increment-offset=1
#server-id=1:指定服务器 A 的唯一 ID
#log-bin=mysql-bin:启用二进制日志
#auto-increment-increment=2 和 auto-increment-offset=1:用于防止自增列冲突(详情见后)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
2.创建从机复制用户
CREATE USER 'zzl'@'10.0.0.23' IDENTIFIED BY '123456zzlZZL!';
GRANT REPLICATION SLAVE ON *.* TO 'zzl'@'10.0.0.23';
FLUSH PRIVILEGES;
1
2
3
2
3
3.重启 mysql
主机B配置:
1.编辑 my.cnf
[mysqld]
server-id=2
log-bin=mysql-bin
auto-increment-increment=2
auto-increment-offset=2
1
2
3
4
5
2
3
4
5
2.创建从机复制用户
CREATE USER 'zzl'@'10.0.0.22' IDENTIFIED BY '123456zzlZZL!';
GRANT REPLICATION SLAVE ON *.* TO 'zzl'@'10.0.0.22';
FLUSH PRIVILEGES;
1
2
3
2
3
3.重启 mysql
设置双向复制
在主机A中,设置如下:
CHANGE MASTER TO
MASTER_HOST='10.0.0.23',
MASTER_USER='zzl',
MASTER_PASSWORD='123456zzlZZL!',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154;
START SLAVE;
1
2
3
4
5
6
7
2
3
4
5
6
7
在主机B中,配置如下:
CHANGE MASTER TO
MASTER_HOST='10.0.0.22',
MASTER_USER='zzl',
MASTER_PASSWORD='123456zzlZZL!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
1
2
3
4
5
6
7
2
3
4
5
6
7
结果如下:

