一、搭建前准备
主库1 192.168.1.76
主库2 192.168.1.78
从库1 192.168.1.71
从库2 192.168.1.72
搭建前要确定好四台主机uuid号是否相同,请改成互不相同
find / -name auto.cnf
二、搭建思路
想必已经学会单主单从,单主多从,而双主双从和单主单步骤相同,先搭建两套单主单从,之后把两个主互相复制。
二、搭建
1、修改配置文件
主库1
[mysqld]
server-id=76
log-bin=mysql-bin#设置忽略即不复制的库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
主库2
[mysqld]
server-id=78
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_scheme
从库1
[mysqld]
server-id=71
relay-log=mysql-relay
从库2
[mysqld]
server-id=72
relay-log=mysql-relay
配置完后,四个主机都重启服务
systemctl restart mysqld
2、创建复制用户
与单主不同的是,需要在两个主都创建复制用户
主库1
create user 'repl'@'%' identified by 'repl123';
grant replication slave,replication client on *.* to 'repl'@'%';
主库2
create user 'repl'@'%' identified by 'repl123';
grant replication slave,replication client on *.* to 'repl'@'%';
3、搭建并开启主从复制
主库1
主库2
记录好主库的文件和位置
从库1
change master to master_host='192.168.1.76',master_user='repl',master_password='repl123',master_log_file='mysql-bin.000001',master_log_pos=709,get_master_public_key=1;
start slave;
从库2
change master to master_host='192.168.1.78',master_user='repl',master_password='repl123',master_log_file='mysql-bin.000001',master_log_pos=709,get_master_public_key=1;
start slave;
至此两套单主单从搭建完成。
4、 建立两个主的复制关系
主库2运行
change master to master_host='192.168.1.76',master_user='repl',master_password='repl123',master_log_file='mysql-bin.000001',master_log_pos=709,get_master_public_key=1;
start slave
主库1运行
change master to master_host='192.168.1.78',master_user='repl',master_password='repl123',master_log_file='mysql-bin.000001',master_log_pos=709,get_master_public_key=1;
start slave
io和sql线程双yes即成功搭建双主双从。
四、测试
主库1
主库2
从库1