MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。 优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。


master1 ip地址:192.168.60.135 master2 ip地址:192.168.60.136 slave1 ip地址:192.168.60.143 slave2 ip地址:192.168.60.144 monitor ip地址:192.168.60.130

mysql版本为mariadb,使用yum直接安装用于实验


一、所有主机配置yum源

1、配置ALI云源 wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2、安装epel-release源 yum install epel-release -y yum clean all & yum makecache


3、yum一键安装mariadb yum install mariadb mariadb-server -y


4、修改配置文件 vim /etc/my.cnf [mysqld] log_error=/usr/local/mysql/data/mysql.err log_slow_queries=/usr/local/data/mysql_slow_queris.log log=/usr/local/mysql/data/mysql_log.log binlog_ignore-db=mysql,information_schema character_set_server=utf8 log_slave_updates=true sync_binlog=1 auto_increment_increment=2 auto_increment_offset=1 log_bin=mysql-bin server-id = 1 (每台的主机server-id不能相同)

5、启动mariadb systemctl restart mariadb.service

二、主主复制

1、两台主服务器查看二进制文件以及偏移量 MariaDB [(none)]> show master status;

2、两台主服务器都需要授权 grant replication slave on . to 'replication'@'192.168.60.%' identified by '123456';


3、两台主服务器互相设置主(对应之前查看的二进制日志,以及偏移量) change master to master_host='192.168.60.136',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245; change master to master_host='192.168.60.135',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245;

show slave status; 查看slave状态

三、主从复制

1、查看任意一台主服务器的master状态

2、从服务器进行主从复制 change master to master_host='192.168.60.135',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=575;

3、查看状态

三、每台服务器都安装mysql-mmm*

1、yum安装 yum install mysqsl-mmm*


2、对mmm进行配置 vim /etc/mysql-mmm/mmm_common.conf

3、将配置覆盖给每台主机 scp mmm_common.conf root@192.168.60.136:/etc/mysql-mmm/ scp mmm_common.conf root@192.168.60.143:/etc/mysql-mmm/ scp mmm_common.conf root@192.168.60.144:/etc/mysql-mmm/ scp mmm_common.conf root@192.168.60.130:/etc/mysql-mmm/

四、监控服务器

1、修改配置文件

2、每天mysql主机给代理用户,监控用户授权 grant super,replication client,process on . to 'mmm_agent'@'192.168.60.%' identified by '123456'; grant replication client on . to 'mmm_monitor'@'192.168.60.%' identified by '123456'; flush privileges;

3、每台mysql主机修改各自身份 vim /etc/mysql-mmm/mmm_agent.conf 主1 db1 主2 db2 从1 db3 从2 db4

4、mysql服务器开启代理服务 systemctl start mysql-mmm-agent.service


5、监控服务器开启监控服务 systemctl start mysql-mmm-monitor.service


6、监控服务器查看各监控点状态 mmm_control show

7、在有虚拟IP的那台主机上授权登陆用户

8、关掉一台主机的mysql服务,看虚拟地址会不会移动

9、再关掉一台从服务器,看虚拟IP移动

end~