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/8/2 3:59:54 阅读更多 →
AI代理安全隔离实践:基于x-cmd内核沙箱的权限控制方案

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

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

2026/8/2 3:59:54 阅读更多 →
树莓派驱动2.13英寸电子纸屏幕:从SPI通信到低功耗显示实战

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

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

2026/8/2 3:59:54 阅读更多 →

最新新闻

Seeeduino开发板入门指南:从硬件解析到智能小车项目实战

Seeeduino开发板入门指南:从硬件解析到智能小车项目实战

1. 项目概述:Seeeduino是什么,以及为什么你需要它如果你对电子制作、智能硬件或者物联网项目感兴趣,那么“Arduino”这个名字你一定不陌生。它就像一个电子世界的乐高积木,让编程和硬件交互变得前所未有的简单。而今天我们要聊的S…

2026/8/2 16:57:53 阅读更多 →
如何快速部署免费开源的中文字体解决方案:PingFangSC跨平台排版终极指南

如何快速部署免费开源的中文字体解决方案:PingFangSC跨平台排版终极指南

如何快速部署免费开源的中文字体解决方案:PingFangSC跨平台排版终极指南 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 你是否在为中文网页和…

2026/8/2 16:57:53 阅读更多 →
Grove SPDT继电器模块详解:从原理到智能控制实战

Grove SPDT继电器模块详解:从原理到智能控制实战

1. 项目概述:从“开关”到“桥梁”的继电器在电子项目和自动化控制的世界里,我们常常需要用一个微弱的信号去控制一个强大的设备。比如,你想用一块小小的Arduino开发板(输出只有5V,几十毫安)去控制一盏220V…

2026/8/2 16:57:53 阅读更多 →
从WS2812B协议到光效编程:Grove环形LED模块的硬件设计与软件驱动全解析

从WS2812B协议到光效编程:Grove环形LED模块的硬件设计与软件驱动全解析

1. 项目概述:从“点亮”到“创造”的环形LED之旅如果你玩过Arduino或者树莓派,点亮一颗LED灯珠大概是你的第一个“Hello World”。但当你手头拿到一个Grove - 环形LED模块时,事情就变得有趣多了。这不再是一个简单的“亮与灭”的二进制问题&a…

2026/8/2 16:57:53 阅读更多 →
Go语言数组详解

Go语言数组详解

摘要:本文参考菜鸟教程Go数组章节,从零讲解数组定义、初始化、遍历、传参特性,重点拆解入门头号误区:数组长度属于类型、数组是值类型、数组与切片的本质差异,配套完整可运行代码一、Go数组核心定义 数组是长度固定、元…

2026/8/2 16:57:53 阅读更多 →
多模态推理:诊断型AI从特征融合到临床决策的范式跃迁

多模态推理:诊断型AI从特征融合到临床决策的范式跃迁

1. 从“看图说话”到“望闻问切”:诊断型AI的范式跃迁 最近和几位在医疗科技公司做AI产品的朋友聊天,大家不约而同地都在讨论一个词:多模态推理。这让我想起几年前,我们还在为某个影像AI模型能准确识别肺结节而欢呼,觉…

2026/8/2 16:56:52 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →