
MySQL-MMM(Multi-Master Replication Manager for MySQL)是一个基于Perl实现的脚本套件,专为MySQL设计,用于监控、故障转移和管理多主复制配置
它不仅能提供浮动IP的功能,还能在主服务器宕机时自动将后端从服务器转向新的主服务器进行同步复制,从而确保MySQL的高可用性
本文将详细介绍MySQL-MMM的搭建步骤,帮助您在多服务器环境中实现这一强大的高可用架构
一、环境准备 在开始搭建之前,确保您具备以下环境: -服务器配置:至少两台主数据库服务器(Master1和Master2),两台从数据库服务器(Slave1和Slave2),以及一台监控服务器(Monitor)
所有服务器均运行CentOS7或更高版本
-IP地址规划:为每个服务器分配唯一的IP地址,并规划好虚拟IP(VIP)用于读写分离
-MySQL版本:确保所有数据库服务器上安装的MySQL版本一致,建议使用稳定版本如MySQL5.7或更高
二、安装MySQL及配置主从复制 1.在所有数据库服务器上安装MySQL: 配置YUM源并安装MySQL: bash echo【mysql-release-$basearch】 name=Percona-Release YUM repository - $basearch baseurl=https://mirror.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/ gpgcheck=0 > /etc/yum.repos.d/mysql.repo yum -y install mysql mysql-server 2.配置MySQL服务: 编辑`/etc/my.cnf`文件,确保每台服务器的`server-id`唯一,并配置其他必要的参数,如字符集、日志、二进制日志等
3.启动MySQL服务: bash systemctl enable mysql mkdir /var/log/mysql && chown -R mysql.mysql /var/log/mysql systemctl start mysql 4.配置主主复制: 在Master1和Master2上互相授权复制用户,并配置复制参数
例如,在Master1上执行: sql GRANT REPLICATION SLAVE ON- . TO replica_user@Master2_IP IDENTIFIED BY replica_password; FLUSH PRIVILEGES; STOP SLAVE; RESET SLAVE ALL; CHANGE MASTER TO MASTER_HOST=Master2_IP, MASTER_USER=replica_user, MASTER_PASSWORD=replica_password, MASTER_LOG_FILE=mysql-bin.000001, MASTER_LOG_POS=4; START SLAVE; 在Master2上执行类似的操作,但指向Master1
5.配置主从复制: 在Slave1和Slave2上配置为Master1的从服务器
例如,在Slave1上执行: sql GRANT REPLICATION SLAVE ON- . TO replica_user@Master1_IP IDENTIFIED BY replica_password; FLUSH PRIVILEGES; STOP SLAVE; RESET SLAVE ALL; CHANGE MASTER TO MASTER_HOST=Master1_IP, MASTER_USER=replica_user, MASTER_PASSWORD=replica_password, MASTER_LOG_FILE=mysql-bin.000001, MASTER_LOG_POS=4; START SLAVE; 在Slave2上执行类似的操作
6.验证复制: 在Master和Slave上执行`SHOW SLAVE STATUSG`,确保`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes`
三、安装与配置MySQL-MMM 1.在所有服务器上安装MySQL-MMM: 由于CentOS默认仓库中不包含MySQL-MMM,需要先安装EPEL仓库: bash wget http://download1.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm rpm -Uvh rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm yum -y install mysql-mmm 2.配置MySQL-MMM: -创建监控和代理账号:在所有数据库服务器上,为MMM监控和代理创建用户并授权
sql GRANT REPLICATION CLIENT ON- . TO mmm_monitor@% IDENTIFIED BY monitor_password; GRANT SUPER, REPLICATION CLIENT, PROCESS ON- . TO mmm_agent@% IDENTIFIED BY agent_password; FLUSH PRIVILEGES; -配置共同文件:在监控服务器上创建`/etc/mysql-mmm/mmm_common.conf`文件,并复制到所有数据库服务器
该文件包含集群的基本配置,如角色、IP地址、用户名和密码等
ini
active_master_role writer
-配置监控文件:在监控服务器上编辑`/etc/mysql-mmm/mmm_mon.conf`文件,包含监控服务器的配置信息
3.启动MySQL-MMM: -启动代理:在所有数据库服务器上启动`mysql-mmm-agent`服务
bash systemctl enable mysql-mmm-agent systemctl start mysql-mmm-agent -启动监控:在监控服务器上启动`mysql-mmm-monitor`服务
bash systemctl enable mysql-mmm-monitor systemctl start mysql-mmm-monitor 4.验证集群状态: 在监控服务器上执行`mmm_control show`命令,验证集群状态
确保所有节点均在线且状态正常
四、故障测试与恢复 为了验证My
MySQL共享内存耗尽,数据库性能告急!
MySQL MMM详细安装配置步骤
yum安装pdo-mysql指南
MySQL太强大:解锁数据库新技能
MySQL设计说明书精华解读
MySQL中日期大小比较技巧
MySQL数据库录入实战代码指南
MySQL共享内存耗尽,数据库性能告急!
yum安装pdo-mysql指南
MySQL太强大:解锁数据库新技能
MySQL设计说明书精华解读
MySQL数据库录入实战代码指南
MySQL中日期大小比较技巧
深入理解MySQL中的SLEEP状态:性能调优与故障排查指南
OPC数据无缝迁移至MySQL数据库指南
MySQL学习心得:掌握数据库的秘诀
MySQL树形结构数据排序技巧
Grafana连接MySQL,轻松绘制数据图
MySQL存储电影数据:高效构建电影数据库指南