MySQL双主:两台MySQL服务器互为主从
一、实验环境
两台同样配置的CentOS-7.5虚拟机;
两台虚机的防火墙+selinux均关闭;
两台虚机均可以上外网;
master_a:CentOS-1(192.168.218.128)
master_b:CentOS-2 (192.168.218.136)
二、安装MySQL服务
1)两台服务器同时安装MySQL服务
说明:因为本人之前已经写过“CentOS-7.5 安装 社区版 MySQL-5.7”这样的博文,所以在此就不在做重复性动作了;两台虚拟机安装MySQL服务的操作是一摸一样的,直接复制粘贴即可
博文链接为:https://blog.51cto.com/14783377/2485030
2)修改两台MySQL配置文件
master_a端:
master_b端:
切记:修改完配置文件以后,两台虚机都要重启MySQL服务使配置生效
三、配置MySQL双主
1)先配置master_a为主,master_b为从的模式
说明:
因为本人之前已经写过“CentOS-7.5 基于GTID 搭建 MySQL 主从复制”这样的博文,所以在此就不在做重复性动作了;直接复制 “CentOS-7.5 基于GTID 搭建 MySQL 主从复制” 博文里边的命令来配置主从
注意:
有一点需要注意,这一次的环境中master_b(CentOS-2 )端,binlog的路径跟上一个实验是有区别的。这一次实验MySQL配置文件中binlog的路径为"/var/lib/mysql/binary_log/master_b-binlog"
上一篇主从搭建的博文链接为:https://blog.51cto.com/14783377/2485030
2)再配置master_b为主,master_a为从的模式
理解:在原来的CentOS-1主节点上创建新的用户(※这点很重要,因为之前已经是主从配置,在master_a节点上创建会自动同步至master_b上,如果在master_b上创建用户,可能会导致两节点数据不一致情况发生)
在master_a端进行操作:
[[email protected] ~]#
[[email protected] ~]# mysql -uroot -p‘Mysql.2020‘
mysql>
mysql> grant replication slave on . to [email protected] identified by ‘Mysql.2019‘; ##授权mastera账户可以通过从服务器192.168.218.128来复制主服务器master_b端的所有库和所有表
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql>
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
mysql> change master to master_host=‘192.168.218.136‘,master_user=‘mastera‘,master_password=‘Mysql.2019‘,master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql>
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> show slave status\G
四、验证MySQL双主同步
思路:在master_b端插入数据,在master_a端能同步就说明数据同步成功
master_b端操作:
mysql>
mysql> create database class;
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> show databases;
master_a端操作:
mysql>
mysql> show databases;
结论:MySQL-5.7 双主复制搭建成功
原文地址:https://blog.51cto.com/14783377/2485150