作者:蓝眼泪
实现方式:用mysql多通道方式实现多主一从实验,
实验环境:3台虚拟机,centos7.9系统
主服务器 192.168.29.10
主服务器 192.168.29.20
从服务器 192.168.29.30
1 主服务器192.168.29.10配置
vim /etc/my.cnf
log-bin=mysql-bin
server-id=10
binlog-do-db = web1 #要同步的数据库
binlog-ignore-db = mysql #不需要同步的数据库
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
重启数据库服务
systemctl restart mysqld
进入数据库并授权允许从服务器192.168.29.30登录
mysql -uroot -p123456
stop slave;
mysql_upgrade -u root -p123456
grant replication slave on *.* to slave@'192.168.29.30' identified by '123456';
show master status;
2 主服务器192.168.29.20配置
vim /etc/my.cnf
log-bin=mysql-bin
server-id=20
binlog-do-db = web2 #要同步的数据库
binlog-ignore-db = mysql #不需要同步的数据库
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
重启数据库服务
systemctl restart mysqld
进入数据库并授权允许从服务器192.168.29.30登录
mysql -uroot -p123456
stop slave;
mysql_upgrade -u root -p123456
grant replication slave on *.* to slave@'192.168.29.30' identified by '123456';
show master status;
3 从服务器192.168.29.30配置
vim /etc/my.cnf
server-id=30
master_info_repository=table
relay_log_info_repository=table
重启数据库服务
systemctl restart mysqld
进入数据库并开启多通道
mysql -uroot -p123456
change master to master_user='slave',master_password='123456',master_host='192.168.29.10',master_log_file='mysql-bin.000007',master_log_pos=415 FOR CHANNEL '10';
change master to master_user='slave',master_password='123456',master_host='192.168.29.20',master_log_file='mysql-bin.000008',master_log_pos=154 FOR CHANNEL '20';
start slave;
start slave for channel '10'; //启动名称为10的同步通道
stop slave for channel '10'; //停止名称为10的同步通道
4 测试环节
主服务器192.168.29.10 ,同步的是web1.a1
主服务器192.168.29.20 ,同步的是web2.a1
主服务器192.168.29.30 ,同步的是web1.a1和web2.a1