MySQL 数据库主从复制配置:从传统复制到 GTID
在生产环境中数据库的高可用和负载均衡至关重要。MySQL 主从复制是实现读写分离、数据备份和故障切换的基础。本文将详细介绍两种主流的主从配置方式传统的 AB 复制与基于 GTID 的复制并附上详细的实操步骤与避坑指南。一、 核心概念与原理在开始配置前我们需要了解主从复制的基本原理。无论哪种方式都要求主库与从库安装相同版本的数据库。1. 传统主从复制AB 复制传统方式主要依赖二进制日志进行同步。核心组件Master开启log-bin二进制日志记录所有数据变更。Slave开启relay-log中继日志用于存储从主库拉取的日志。工作线程IO 线程连接主库读取 binlog 并写入本地 relay-log。SQL 线程读取 relay-log 并回放 SQL 语句。特点需要手动指定 binlog 文件名和位置配置相对繁琐切换时需人工干预位点。2. GTID 复制GTID全局事务标识为每个事务分配了唯一的 ID。核心配置需开启gtid_mode、enforce_gtid_consistency等参数。优势不再依赖手动指定文件名和位点。从库会根据已执行事务的 GTID 集合自动向主库请求缺失事务配置更简单且支持自动故障切换更适合现代高可用架构。二、传统 AB 复制搭建1. 主数据库配置步骤 1修改配置文件/etc/my.cnf确保 server-id 唯一并开启二进制日志。[mysqld] server-id10 log-binmysql-bin注意修改配置后需重启数据库服务systemctl restart mysqld。步骤 2创建复制用户创建用于复制的专用账户并授予REPLICATION SLAVE权限。针对 MySQL 8.0建议指定认证插件以绕过 SSL 握手麻烦。-- 创建用户 CREATE USER repl192.168.146.176 IDENTIFIED BY 123456; -- 指定认证方式解决 MySQL 8.0 连接问题 ALTER USER repl192.168.146.176 IDENTIFIED WITH mysql_native_password BY 123456; -- 授权 GRANT REPLICATION SLAVE ON *.* TO repl192.168.146.176; FLUSH PRIVILEGES;步骤 3查看主库状态记录下File和Position的值从库配置时需要用到。mysql show master status; ------------------------------------------------------------------------------- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | ------------------------------------------------------------------------------- | mysql-bin.000001 | 2262 | | | | -------------------------------------------------------------------------------2. 从数据库配置步骤 1修改配置文件/etc/my.cnf设置唯一的 server-id开启中继日志并建议开启只读模式。[mysqld] server-id11 relay-logmysql-relay-bin read_only1步骤 2配置同步信息在从库中执行以下 SQL指向主库的地址、用户、密码及刚才记录的日志文件和位点。-- 停止已有复制线程如有 STOP SLAVE; RESET SLAVE ALL; -- 配置主库连接信息 CHANGE MASTER TO MASTER_HOST192.168.146.173, MASTER_USERrepl, MASTER_PASSWORD123456, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS2262; -- 启动复制 START SLAVE;步骤 3验证状态查看Slave_IO_Running和Slave_SQL_Running是否均为Yes。SHOW SLAVE STATUS\G三、基于 GTID 的主从配置1. 主数据库配置步骤 1修改配置文件/etc/my.cnf在传统配置基础上增加 GTID 相关参数。[mysqld] server-id10 log-binmysql-bin # 以下是 GTID 必需的关键配置 gtid_modeON enforce_gtid_consistencyON步骤 2创建复制用户操作同传统方式略步骤 3查看主库状态此时Executed_Gtid_Set列应显示事务集合。mysql show master status; ------------------------------------------------------------------------------------------------------ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | ------------------------------------------------------------------------------------------------------ | mysql-bin.000003 | 860 | | | 1f0b4304-8a33-11f1-8fcb-000c291ea219:1-3 | ------------------------------------------------------------------------------------------------------2. 从数据库配置步骤 1修改配置文件/etc/my.cnf同样开启 GTID 模式。[mysqld] server-id11 relay-logmysql-relay-bin read_only1 # 以下是 GTID 必需的关键配置 gtid_modeON enforce_gtid_consistencyON步骤 2配置同步信息与传统方式不同这里不再需要指定MASTER_LOG_FILE和MASTER_LOG_POS而是启用MASTER_AUTO_POSITION1。-- 重置之前的同步信息如果之前配过传统复制 STOP SLAVE; RESET SLAVE ALL; CHANGE MASTER TO MASTER_HOST192.168.146.173, MASTER_USERrepl, MASTER_PASSWORD123456, MASTER_AUTO_POSITION1; -- 启动并检查 START SLAVE; SHOW SLAVE STATUS\G四、 关键注意事项与避坑指南在实际搭建过程中以下几点至关重要直接影响配置的成败MySQL 8.0 认证插件问题MySQL 8.0 默认使用caching_sha2_password会强制启用 SSL 加密认证配置证书极为繁琐。最佳实践是在创建复制用户时直接指定mysql_native_password认证插件以绕开 SSL 握手问题。Server-ID 与 UUID 唯一性server-id在整个主从架构中必须唯一。数据目录下的auto.cnf文件中包含server-uuid必须全集群唯一。避坑如果你是通过虚拟机克隆搭建的从库务必删除从库数据目录下的auto.cnf文件重启数据库后会自动生成新的 UUID否则会因 UUID 冲突导致复制失败。数据一致性搭建前必须保证主从数据一致。建议先锁定主库或停止业务写入进行全量备份并导入从库然后再开启复制。网络与权限确保主从节点网络互通且防火墙放行数据库端口默认 3306。复制用户应遵循最小权限原则仅授予REPLICATION SLAVE权限严禁使用 root 用户进行复制。配置修改生效修改my.cnf配置文件后必须重启数据库服务才能生效。

相关新闻

6款一键生成论文工具盘点

6款一键生成论文工具盘点

真正的学术 AI,从不替你代笔,而是做你的选题军师、文献管家、逻辑教练、润色专家。从中文毕业论文到英文期刊发表,从框架搭建到降重合规,这 6 款工具覆盖全场景,帮你用最低时间成本,写出高质量、高原创、高…

2026/9/23 8:08:56 阅读更多 →
AI代理安全隔离实践:基于x-cmd内核沙箱的权限控制方案

AI代理安全隔离实践:基于x-cmd内核沙箱的权限控制方案

1. 项目概述:当AI代理需要“放权”时,我们如何自保?最近在折腾AI代理(Agent)的时候,我遇到了一个几乎所有开发者都会头疼的经典矛盾:一方面,我们希望AI能真正“动起来”,…

2026/9/24 5:32:56 阅读更多 →
树莓派驱动2.13英寸电子纸屏幕:从SPI通信到低功耗显示实战

树莓派驱动2.13英寸电子纸屏幕:从SPI通信到低功耗显示实战

1. 项目概述:一块能“留住画面”的屏幕如果你玩过树莓派,大概率折腾过各种LCD屏幕,从几寸的小屏到十几寸的大屏,它们都需要持续供电才能显示内容,一旦断电,屏幕就一片漆黑。今天要聊的这块2.13英寸电子纸屏…

2026/9/24 21:00:51 阅读更多 →

最新新闻

FlexGen 仓库内 HuggingFace Transformers PyTorch 示例全指南:从任务清单到分布式训练与实验追踪

FlexGen 仓库内 HuggingFace Transformers PyTorch 示例全指南:从任务清单到分布式训练与实验追踪

推理引擎大模型 【免费下载链接】FlexGen Running large language models on a single GPU for throughput-oriented scenarios. 项目地址: https://gitcode.com/gh_mirrors/fl/FlexGen 点击查看 免费下载 本篇指南以 FlexGen 仓库中随附的 HuggingFace Transforme…

2026/9/25 7:27:50 阅读更多 →
连云港排名前五的全自动滤水器生产厂家、电动滤水器生产厂家、手动滤水器厂家实力与用户口碑

连云港排名前五的全自动滤水器生产厂家、电动滤水器生产厂家、手动滤水器厂家实力与用户口碑

在工业循环水过滤领域,滤水器的稳定可靠,直接关系到整套生产系统的运行效率与运维成本。连云港作为国内电力辅机产业的重要聚集地,聚集了一批深耕滤水器研发生产的制造企业,从产品性能到用户口碑,各品牌各有特色&#…

2026/9/25 7:27:50 阅读更多 →
福建正规的蒸发冷空调定制工厂 定制服务好的源头生产厂家推荐

福建正规的蒸发冷空调定制工厂 定制服务好的源头生产厂家推荐

蒸发冷空调基础科普:是什么、能解决什么问题蒸发冷空调是依托蒸发吸热原理的新型节能降温设备,区别于传统压缩式风冷空调,通过水蒸发吸收热量实现降温,核心优势就是节能,适配工业厂房、开放式/半开放式空间以及各类高温…

2026/9/25 7:27:49 阅读更多 →
食品化妆品出口香港条码找谁办?资深从业者说透4个关键问题

食品化妆品出口香港条码找谁办?资深从业者说透4个关键问题

直接给答案:不存在“官方指定代理”,所有香港条形码最终都由GS1 Hong Kong审批发证,你要找的不是“价格实惠的”,而是“能帮你把材料一次性过审、后续续费不掉链子”的正规代办。 我在条码代办这行干了快八年,食品、化…

2026/9/25 7:27:49 阅读更多 →
体育科学与体能训练:从理论到实践的完整指南

体育科学与体能训练:从理论到实践的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 7:27:49 阅读更多 →
Atlas 300V 24G部署YOLO全攻略:环境搭建、模型转换与性能调优

Atlas 300V 24G部署YOLO全攻略:环境搭建、模型转换与性能调优

最近有朋友在群里连着问了我两个问题:“Atlas 300V 24G是不是运算加速卡?”“这卡能不能拿来部署YOLO?”巧的是,我这大半年就在跟昇腾Atlas的推理卡打交道,从环境搭建到模型转换再到上线调优,该踩的坑基本都…

2026/9/25 7:26:49 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →