答案:基于MHA+主从复制的MySQL高可用方案通过主从同步和自动故障转移保障服务连续性。1. 配置主从复制实现数据冗余,主库开启binlog并创建复制账号,从库通过CHANGE MASTER连接并启动复制;2. 部署MHA管理节点与数据节点,安装MHA Node和Manager组件,配置SSH互信及MHA配置文件,运行检查命令验证环境;3. 编写VIP切换脚本并配置至MHA,实现故障时IP漂移,可选配置告警通知;4. 启动MHA监控进程,模拟主库宕机测试自动切换,确认新主库提升及从库重连成功,原主恢复后手动转为从库。该方案成本低、稳定性高,建议结合半同步复制与定期备份增强数据一致性与安全性。

MySQL高可用环境的搭建核心在于避免单点故障,确保数据库在异常情况下仍能正常对外提供服务。常用方案包括主从复制+读写分离、MMM、MHA、PXC(Percona XtraDB Cluster)、以及使用中间件如ProxySQL或MaxScale等。下面介绍一种基于MHA + 主从复制的高可用搭建方法,适合大多数中小型企业场景。
1. 搭建MySQL主从复制结构
高可用的基础是数据冗余,主从复制是实现数据同步的关键步骤。
- 配置主库(Master):启用二进制日志(binlog),设置唯一的server-id。
- 配置从库(Slave):设置不同的server-id,开启中继日志(relay log)。
- 在主库创建用于复制的账号,如:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; - 从库执行CHANGE MASTER TO命令,指向主库并启动复制:
START SLAVE; - 检查复制状态:
SHOW SLAVE STATUS\G,确认Seconds_Behind_Master为0且无错误。
2. 部署MHA(Master High Availability)
MHA能在主库宕机时自动完成故障转移,选择最新的从库提升为新主库,并重新配置其他从库指向新主库。
- 准备四台服务器:一主两从 + 一台MHA管理节点(可与从库共用)。
- 安装MHA Node(每台MySQL服务器都要安装)和MHA Manager(仅管理节点安装)。
- 配置SSH免密登录:MHA需通过SSH管理各节点,建议使用专用用户(如mha)并配置互信。
- 创建MHA配置文件,如/etc/mha/app1.cnf,指定主从关系、用户名密码、脚本路径等。
- 验证SSH和复制配置:
masterha_check_ssh和masterha_check_repl。
3. 配置故障切换脚本
MHA支持自定义脚本,在主库宕机时执行IP漂移或通知操作。
飞蛙B2B2C(FeiWa B2B2C)商城系统是山东破浪网络科技有限公司于2017年最新推出的企业级B2B2C电商平台系统,采用PHP5+MySQL技术为基础,OOP(面向对象)方式进行核心框架搭建,结合MVC模式进行开发,可以支持Windows/Unix服务器环境,需PHP5.3及以上版本支持,可运行于包括Apache、IIS和Nginx在内的多种WEB服务器。飞蛙B2B2C(FeiWa B2
- 编写VIP(虚拟IP)切换脚本,在主库故障时将VIP绑定到新主库。
- 示例:使用ifconfig或ip命令在新主库上添加VIP,旧主库恢复后作为从库加入集群。
- 在MHA配置中指定
master_ip_failover_script参数,指向该脚本。 - 可选:配置邮件或短信告警脚本,及时通知运维人员。
4. 启动MHA监控并测试故障转移
一切准备就绪后,启动MHA监控进程。
- 运行命令:
nohup masterha_manager --conf=/etc/mha/app1.cnf & - 查看MHA日志确认是否正常监控主库。
- 模拟主库宕机(如关闭MySQL服务),观察MHA是否自动完成切换。
- 检查新主库是否被正确提升,其他从库是否重新同步。
- 原主库恢复后,需手动将其配置为从库,接入新主库进行同步。
基本上就这些。这套方案结合了主从复制的数据安全性和MHA的自动故障转移能力,成本低、稳定性好。注意定期备份数据,同时建议结合半同步复制(semi-sync)提升数据一致性。高可用不只是工具,还需要完善的监控和应急流程配合。









