0

0

mysql如何搭建高可用环境_mysqlHA环境配置与部署

P粉602998670

P粉602998670

发布时间:2026-03-11 02:25:18

|

375人浏览过

|

来源于php中文网

原创

mysql高可用需在主从复制上叠加故障检测、角色切换和客户端路由三层能力,推荐group replication(强一致性,需5.7.17+/8.0+)或proxysql+orchestrator(适配现有架构),禁用keepalived+vip方案。

mysql如何搭建高可用环境_mysqlha环境配置与部署

MySQL 主从复制是高可用的基础,但单靠它不够

主从复制本身不提供自动故障转移能力。当主库宕机,必须人工干预切换从库为主库,期间服务中断、数据可能丢失。真正可用的 MySQL HA 环境,需要在复制之上叠加故障检测、角色切换和客户端路由三层能力。

常见组合方案有:MySQL Group Replication(官方原生 MGR)、Percona XtraDB Cluster(PXC)、MHA(已停更,慎用)、Orchestrator + ProxySQLMaxScale。目前生产推荐优先评估 Group ReplicationProxySQL + 异步主从。

  • 如果要求强一致性且能接受 3 节点最低部署,选 Group Replication(基于 Paxos,支持多写或单主模式)
  • 如果已有成熟主从架构,只想加一层高可用调度,ProxySQL + Orchestrator 更轻量、易调试
  • 避免直接用 keepalived + VIP 做主库漂移:无法感知 MySQL 实例是否真的可服务(比如 crash 后 mysqld 进程未起来,VIP 却已切过去)

用 Group Replication 搭建单主模式三节点集群

这是目前最可控、无需第三方组件的原生方案。注意:必须使用 MySQL 5.7.17+ 或 8.0+,所有节点需开启二进制日志、启用 GTID,并关闭 binlog_checksum(MySQL 5.7)或设为 NONE(8.0)。

关键配置项(my.cnf 中):

server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_format=ROW
plugin_load_add='group_replication.so'
transaction_write_set_extraction=XXHASH64
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=OFF
group_replication_local_address="node1:33061"
group_replication_group_seeds="node1:33061,node2:33061,node3:33061"
group_replication_bootstrap_group=OFF
  • 每个节点 server_idgroup_replication_local_address 必须唯一;group_replication_group_seeds 是初始发现地址,所有节点写全
  • 首次启动时,仅在一个节点执行 SET GLOBAL group_replication_bootstrap_group=ON;,再 START GROUP_REPLICATION;,之后立即关掉 bootstrap(SET GLOBAL group_replication_bootstrap_group=OFF;
  • 其余节点直接执行 START GROUP_REPLICATION; 即可加入
  • 验证状态:查 performance_schema.replication_group_members,状态必须为 ONLINE;查 replication_group_member_stats 确认事务同步无延迟

ProxySQL + Orchestrator 实现自动故障转移

这套组合更适合已有异步主从环境的升级。Orchestrator 负责探测主库健康、选举新主、重置从库指向;ProxySQL 负责将写请求只发给当前主库,读请求按权重分发到从库。

多商户双网版电子商城CRMEB系统
多商户双网版电子商城CRMEB系统

基于ThinkPhp6+ swoole4+uniapp 开发的一套CRMEB新零售多商户商城系统。如果不会搭建请到 查看搭建说明系统环境推荐 使用 宝塔配置环境centos PHP7.3 mysql5.6新增功能: 01·新增支持销售虚拟产品自动发货 02.支持销售链接与卡密可导入导出 03.自定义后台路径对后台进行保护 04.新增支持商家缴纳保证金功能 05·违法或侵权商品一键举报功能 06·仲

下载

Orchestrator 配置要点:

  • 必须开启 detectClusterAliasauditLogFile,便于追踪切换动作
  • FailureDetectionPeriodBlockMinutes 建议设为 1(分钟),避免误判瞬时抖动
  • raft 模式下运行(多实例高可用),否则单点 Orchestrator 故障会导致整个 HA 失效

ProxySQL 关键操作:

  • 通过 mysql_servers 表注册后端节点,用 hostgroup_id 区分写组(如 10)和读组(如 20)
  • mysql_query_rules 规则匹配 SELECT 语句并路由到读组;显式含 /*+ MAX_EXECUTION_TIME(1000) */ 的查询也可强制走读组
  • Orchestrator 切换完成后,需调用 ProxySQL REST API 或写入 mysql_servers 表更新主库 hostgroup_id,否则写流量仍打向旧主

最容易被忽略的细节:网络与权限

所有高可用组件都极度依赖底层网络稳定性。跨机房部署 MGR 或 ProxySQL 时,group_replication_communication_max_message_size 默认 10M,但公网 MTU 小、丢包率高,建议降至 1M 并开启 group_replication_compression_threshold

权限方面:

  • MGR 节点间通信需 REPLICATION SLAVEREPLICATION CLIENTSUPER(8.0+ 改为 GROUP_REPLICATION_ADMIN
  • Orchestrator 连接 MySQL 需要 PROCESSREPLICATION SLAVESUPER 权限,且必须允许从 Orchestrator 所在主机连接
  • ProxySQL 管理接口默认监听 6032,但生产必须改密码、限制访问 IP,否则等于裸奔

别低估 DNS 解析失败的影响:Orchestrator 和 ProxySQL 内部大量使用主机名注册节点,一旦 DNS 不稳,节点会反复“失联→恢复→再失联”,触发无意义切换。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

686

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

493

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

287

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

519

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

267

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

392

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

542

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

666

2023.08.14

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

4

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 846人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号