MySQL—MMM高可用群集的搭建(全过程,纯干货~~)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。先来看看具体的架构拓扑,如下:其中,角色HostsIP地址应用属性VIPmaster
千家信息网最后更新 2026年11月01日MySQL—MMM高可用群集的搭建(全过程,纯干货~~)
本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。
先来看看具体的架构拓扑,如下:
其中,
| 角色 | Hosts | IP地址 | 应用属性 | VIP |
|---|---|---|---|---|
| master1 | master | 192.168.142.135 | write | 192.168.142.188 |
| master2 | backup | 192.168.142.132 | write|read | 192.168.142.188 |
| slave1 | slave | 192.168.142.136 | read | 192.168.142.200, 192.168.142.210 |
| slave2 | slave | 192.168.142.137 | read | 192.168.142.200, 192.168.142.210 |
| monitor | monitor | 192.168.142.143 | moitor | 无VIP |
具体配置步骤
一、实验环境配置
配置ALI云源(若已安装可跳过)
这里以master1作示范,实际五台均需要安装
[root@master1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo[root@master1 ~]# yum -y install epel-release[root@master1 ~]# yum clean all && yum makecache给所有主从服务器安装MySQL,并配置
[root@master1 ~]# yum install mysql -y[root@master1 ~]# vim /etc/my.cnf #修改配置文件 ##server id不能一样 server-id = log-bin = zhu-bin log-slave-updates = ture ##开启主从同步 sync_binlog = 1 ##二进制文件立即写入 auto_increment_increment=2 ###增量为2 auto_increment_offset=1 ###### 起始值为1[root@master1 ~]# systemctl restart mysqld[root@master1 ~]# systemctl enable mysqld二、配置主主同步(两个主服务器相互复制,互相平级)
m1给m2从权限,m2给m1从权限
[root@master1 ~]# mysql -u root -pgrant replication slave on *.* to 'myslave'@'192.168.142.%' identified by 'asd123'; #允许从服务器使用myslave账户在主服务器上进行复制操作(两台主均要授权)show master status;+------------------+----------+--------------+--------------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+--------------------------+| mysql_bin.000001 | 245 | | mysql,information_schema |+------------------+----------+--------------+--------------------------+1 row in set (0.00 sec) #查看作为主服务器的信息,关键点为position号码change master to master_host='主服务器地址',master_user='myslave',master_password='asd123',master_log_file='File',master_log_pos=position号码; ##授予权限(m1为m2的主,m2为m1的主)start slave;show slave status\G Slave_IO_Running: Yes Slave_SQL_Running: Yes #查看作为从服务器的信息,是否同步开启三、进行主从同步(两台从指一台同一台主)
配置两台从服务器指向master1
[root@slave1 ~]# vim /etc/my.cnf server-id = 6 #不能有相同的 log-bin=mysql-bin log-slave-updates=ture sync_binlog = 1[root@slave1 ~]# systemctl restart mysqld[root@slave1 ~]# netstat -atnp | grep 3306tcp6 0 0 :::3306 :::* LISTEN 38831/mysqld#提权,指向master1(两台从操作相同!!!!!)[root@slave1 ~]# mysql -uroot -pchange master to master_host='主服务器地址',master_user='myslave',master_password='asd123',master_log_file='主服务器查看到的信息',master_log_pos=号码; ##授予权限(slave1、slave2为master1的从)start slave;show slave status\G Slave_IO_Running: Yes Slave_SQL_Running: Yes #查看作为从服务器的信息,是否同步开启四、所有服务器安装并配置MMM
修改mmm_common配置文件
[root@master1 ~]# yum -y install mysql-mmm*#修改MMM配置文件[root@master1 ~]# vim /etc/mysql-mmm/mmm_common.confcluster_interface ens33......replication_user myslave #从服务器访问主服务器账户replication_password asd123agent_user mmm_user #MMM用户账户agent_password 123123 ip 192.168.142.135 #master1的IP地址 mode master peer db2 ip 192.168.142.132 #master2的IP地址 mode master peer db1 ip 192.168.142.136 #slave1的IP地址 mode slave ip 192.168.142.137 #slave2的IP地址 mode slave hosts db1, db2 ips 192.168.142.188 ###VIP虚拟IP地址 mode exclusive hosts db3, db4 ips 192.168.142.200, 192.168.142.210 ###VIP虚拟IP地址 mode balanced #scp远程复制,将配置远程推送[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.132:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.136:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.137:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.143:/etc/mysql-mmm/修改mmm_monitor配置文件(仅monitor监听端)
[root@localhost ~]# vim /etc/mysql-mmm/mmm_mon.conf ...... ping_ips 192.168.142.135,192.168.142.132,192.168.142.136,192.168.142.137 #所有主从服务器IP地址 auto_set_online 5 #等待上线时间 monitor_user mmm_monitor ##创建监控用户 monitor_password 123123 在所有主从数据库中(MMM用户、监控用户)进行提权
[root@master1 ~]# mysql -u root -pgrant super,replication client,process on *.* to 'mmm_user'@'192.168.142.%' identified by '123123';grant replication client on *.* to 'mmm_monitor'@'192.168.142.%' identified by '123123';flush privileges##每台主从都要提权修改agant配置文件(每台主从都要修改)
位置:/etc/mysql-mmm/mmm_agent.conf
[root@master1 ~]# vim /etc/mysql-mmm/mmm_agent.confthis db1(对应的角色)五、开启服务
所有主从服务器开启mmm_agant服务
[root@master1 ~]# systemctl start mysql-mmm-agent.service [root@master1 ~]# systemctl enable mysql-mmm-agent.service 监控端开启mmm_monitor服务
[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0[root@localhost ~]# systemctl start mysql-mmm-monitor.service[root@localhost ~]# mmm_control show ##查看监控状态六、验证结果
[root@localhost mysql-mmm]# mmm_control show db1(192.168.142.135) master/ONLINE. Roles: writer(192.168.18.250) db2(192.168.142.132) master/ONLINE. Roles: db3(192.168.142.136) slave/ONLINE. Roles: reader(192.168.18.251) db4(192.168.142.137) slave/ONLINE. Roles: reader(192.168.18.252)//利用命令调整虚拟IP切换至master2:[root@localhost mysql-mmm]# mmm_control move_role writer db2OK: Role 'writer' has been moved from 'db1' to 'db2'. Now you can wait some time and check new roles info![root@localhost mysql-mmm]# mmm_control show db1(192.168.142.135) master/ONLINE. Roles: db2(192.168.142.132) master/ONLINE. Roles: writer(192.168.18.250) db3(192.168.142.136) slave/ONLINE. Roles: reader(192.168.18.251) db4(192.168.142.137) slave/ONLINE. Roles: reader(192.168.18.252)//检测所有状态是否都正常:[root@localhost mysql-mmm]# mmm_control checks alldb4 ping [last change: 2019/11/25 15:25:54] OKdb4 mysql [last change: 2019/11/25 15:25:54] OKdb4 rep_threads [last change: 2019/11/25 15:25:54] OKdb4 rep_backlog [last change: 2019/11/25 15:25:54] OK: Backlog is nulldb2 ping [last change: 2019/11/25 15:25:54] OKdb2 mysql [last change: 2019/11/25 15:25:54] OKdb2 rep_threads [last change: 2019/11/25 15:25:54] OKdb2 rep_backlog [last change: 2019/11/25 15:25:54] OK: Backlog is nulldb3 ping [last change: 2019/11/25 15:25:54] OKdb3 mysql [last change: 2019/11/25 15:25:54] OKdb3 rep_threads [last change: 2019/11/25 15:25:54] OKdb3 rep_backlog [last change: 2019/11/25 15:25:54] OK: Backlog is nulldb1 ping [last change: 2019/11/25 15:25:54] OKdb1 mysql [last change: 2019/11/25 15:25:54] OKdb1 rep_threads [last change: 2019/11/25 15:25:54] OKdb1 rep_backlog [last change: 2019/11/25 15:25:54] OK: Backlog is null以上就是MMM群集搭建的全过程,感谢阅读!!
服务
服务器
配置
地址
主从
文件
同步
信息
权限
用户
监控
号码
账户
相同
指向
数据
方案
架构
状态
角色
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技
互联网新科技
南京欣网互联网络科技有限公司
广州淘业互联网络科技
科技互联网公司装修
互联网科技小额贷款
互联网公司会议桌创意科技软装饰
济南和联互联网科技有限公司
重庆威客帮互联网科技
河南猎农互联网科技有限公司
互联网科技公司有风险吗
深圳育鹏互联网科技有限公司招聘
华夏恒生科技与互联网科技
互联网科技公司营业执照怎么办理
北京市互联网新科技
广州富喜互联网络科技
广东鹅鹅鹅互联网科技有限公司
网互联网络科技
科技发展第三阶段互联网时代
颐高云石互联网科技
金诺互联网科技
丰台科技园 互联网
唐信互联网科技 大连
时间互联网络科技
奔汉互联网科技
互联网科技大会
四个字互联网科技公司取名
知域互联网科技有限公司大骗子
高科技和互联网的现代国家
广州全民伙伴互联网科技有限公司