导读:本期聚焦于小伙伴创作的《mysql如何实现高可用集群架构?基于MHA环境搭建与部署步骤详解》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《mysql如何实现高可用集群架构?基于MHA环境搭建与部署步骤详解》有用,将其分享出去将是对创作者最好的鼓励。

mysql高可用集群是保障数据库服务持续可用的核心架构,MHA(Master High Availability)是目前主流的mysql主从切换管理工具,能够在主库故障时快速自动提升从库为新主库,最小化服务中断时间。本文将以一主两从的拓扑结构为例,讲解完整的MHA环境搭建与部署流程。

环境准备

本次部署使用3台CentOS 7服务器,配置信息如下:

节点角色IP地址安装组件
主库(Master)192.168.0.101mysql 5.7、MHA Node
从库1(Slave1)192.168.0.102mysql 5.7、MHA Node
从库2(Slave2)192.168.0.103mysql 5.7、MHA Node
管理节点(Manager)192.168.0.104MHA Manager、MHA Node

所有节点需要关闭防火墙和SELinux,配置节点间SSH免密登录,确保管理节点可以无密码访问所有数据库节点。

配置mysql主从复制

主库配置

修改主库my.cnf配置文件,添加以下参数:

[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=row
expire_logs_days=7
# 允许从库同步的账号权限
grant replication slave on *.* to 'repl'@'192.168.0.%' identified by 'repl_password';
flush privileges;
# 查看主库状态,记录binlog文件和位置
show master status;

从库配置

两个从库修改my.cnf,设置不同的server-id,从库1设为2,从库2设为3,然后执行同步命令:

change master to
master_host='192.168.0.101',
master_user='repl',
master_password='repl_password',
master_log_file='mysql-bin.000001',
master_log_pos=154;
start slave;
# 检查同步状态,确保Slave_IO_Running和Slave_SQL_Running都是Yes
show slave statusG

安装MHA组件

所有节点安装MHA Node

先安装依赖包,再安装MHA Node:

yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager
rpm -ivh mha4mysql-node-0.58-0.el7.noarch.rpm

管理节点安装MHA Manager

管理节点除了安装Node组件,还需要安装Manager:

yum install -y perl-Email-Date perl-MIME-Lite perl-MIME-Types perl-Mail-Sender perl-Mail-Sendmail
rpm -ivh mha4mysql-manager-0.58-0.el7.noarch.rpm

配置MHA管理节点

在管理节点创建MHA配置文件目录和日志目录:

mkdir -p /etc/mha /var/log/mha/app1

创建MHA配置文件/etc/mha/app1.cnf,内容如下:

[server default]
manager_log=/var/log/mha/app1/manager.log
manager_workdir=/var/log/mha/app1
master_binlog_dir=/var/lib/mysql
user=root
password=mysql_root_password
ping_interval=1
remote_workdir=/tmp
repl_user=repl
repl_password=repl_password
ssh_user=root

[server1]
hostname=192.168.0.101
port=3306

[server2]
hostname=192.168.0.102
port=3306
candidate_master=1

[server3]
hostname=192.168.0.103
port=3306

检查MHA环境

执行以下命令检查SSH连通性和主从复制状态:

# 检查SSH连通性
masterha_check_ssh --conf=/etc/mha/app1.cnf
# 检查主从复制状态
masterha_check_repl --conf=/etc/mha/app1.cnf

两个检查都通过后再启动MHA Manager服务。

启动MHA服务并测试故障切换

启动MHA Manager:

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover /var/log/mha/app1/manager.log 2>&1 &

查看MHA运行状态:

masterha_check_status --conf=/etc/mha/app1.cnf

模拟主库故障

在主库执行关机命令模拟故障:

shutdown -h now

等待1-2分钟后,查看MHA日志,确认从库1已经被提升为新主库,从库2自动同步到新主库,故障切换完成。此时可以在新主库执行写入操作,验证集群可用性。

注意事项

  • 所有节点的mysql版本需要保持一致,避免兼容性问题
  • MHA Manager需要单独部署,不要和数据库节点放在同一台服务器
  • 故障切换后需要手动恢复原主库,并重新加入集群作为从库
  • 生产环境建议配置MHA监控脚本,及时感知集群状态变化

mysql高可用集群MHA主从复制修改时间:2026-07-01 22:15:27

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。