本文章记录的是将 MySQL 原有单主单从(Master-Slave)架构改造为双主(Master-Master,互为主从)架构的操作步骤。
1. 配置主从节点参数
vi my.cnf
主节点添加参数
# 开启gtid,不要gtid的可以不配
gtid_mode = ON
enforce_gtid_consistency = 1
# 设置server-id,两节点必须不一样
server-id=1
# 设置自增ID初始值为2,每次自增量为2。即都是偶数2,4,6,8
auto_increment_offset=1
auto_increment_increment=2
备节点添加参数
bash
# 开启gtid,不要gtid的可以不配试试
gtid_mode = ON
enforce_gtid_consistency = 1
server-id=2
auto_increment_offset=2
auto_increment_increment=2
# 只读改为0
read_only=0
重启两节点
2. 配置同步
创建同步账号(已为主从模式的可忽略,直接使用)
bash
# 在节点A上创建账号repl_user,允许从任意IP访问,密码为***
CREATE USER 'slave'@'%' IDENTIFIED BY '***';
# 分配权限
GRANT ALL ON *.* TO 'slave'@'192.168.0.193' identified by '***';
GRANT ALL ON *.* TO 'slave'@'192.168.0.192' identified by '***';
flush privileges;
3. 确认 master 信息
show master status;


配置备库的 master(已为主从模式的可忽略)
bash
# 停止备库上的slave
stop slave;
bash
# MASTER_LOG_FILE和MASTER_LOG_POS,是在3中查主库的master信息
change master to master_host='192.168.0.192',
master_user='slave',
master_password='***',
master_port=3306,
master_log_file='master-bin.000007',
master_log_pos=154;
开启同步
bash
START SLAVE;
配置主库的 master
sql
change master to master_host='192.168.0.193',
master_user='slave'
master_password='***',
master_port=3306,
master_log_file='binlog.000009',
master_log_pos=154;
开启同步
sql
START SLAVE;