MySQL MMM详细安装配置步骤
mysql-mmm怎么详细步骤

首页 2025-07-09 19:36:37



MySQL-MMM详细搭建步骤指南 在当今的数据库管理领域,高可用性和数据冗余性至关重要

    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 cluster_interface eth0 pid_path /var/run/mysql-mmm/mmm_agentd.pid bin_path /usr/libexec/mysql-mmm replication_user rep replication_password rep_password agent_user mmm_agent agent_password agent_password ip192.168.x.101 mode master peer db2 ip192.168.x.102 mode master peer db1 ip192.168.x.103 mode slave ip192.168.x.104 mode slave hosts db1, db2 ips192.168.x.100 mode exclusive hosts db1, db2, db3, db4 ips192.168.x.105,192.168.x.106,192.168.x.107,192.168.x.108 mode balanced -配置代理文件:在每个数据库服务器上编辑`/etc/mysql-mmm/mmm_agent.conf`文件,确保`this`后面的主机名与当前服务器一致

     -配置监控文件:在监控服务器上编辑`/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日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道