当前位置: 首页 > news >正文

MySQL主从同步架构配置笔记

MySQL主从同步架构配置笔记

一、环境准备

部署三台MySQL服务器(主机名分别为MySQL53、MySQL54、MySQL55)及一台Web服务器(模拟业务访问端),完成以下基础配置:

关闭所有服务器防火墙,确保节点间网络互通

所有MySQL服务器安装并启动MySQL服务,安装依赖包:mysql-server、mysql

二、主服务器(Master)配置

规则:业务网站连接并存储数据的MySQL服务器作为主服务器,主从架构中主服务器唯一。

2.1 启用并自定义binlog日志

MySQL默认支持binlog日志,但需自定义日志文件名以适配主从同步:

修改MySQL主配置文件

在[mysqld]配置段头部添加两项核心配置(确保唯一性和可识别性): ① server-id:主从架构中全局唯一的节点标识(如主服务器设为1) ② log-bin:自定义binlog日志文件名(如log-bin=mysql-bin)

重启MySQL服务后,通过命令验证binlog配置生效(确认当前使用的binlog文件名与配置一致)

2.2 创建主从同步专用授权账户

目的:为从服务器提供连接主服务器同步数据的专用账户,遵循最小权限原则授权:

创建同步账户:用户名repluser,密码Huawei@123

授予权限:为repluser账户授予REPLICATION SLAVE权限(核心同步权限,用于拷贝主服务器binlog日志)

2.3 查看主服务器当前binlog状态

执行相关命令(show master status;),记录当前使用的binlog日志文件名及日志偏移量(Position),后续从服务器配置需用到这两个参数。

三、从服务器(Slave)配置

核心目标:通过配置让从服务器自动同步主服务器数据,需完成以下步骤:

3.1 配置从服务器唯一标识

验证当前状态:执行命令查看从服务器配置(若输出为空,说明尚未启用从服务器角色)

修改主配置文件:在[mysqld]配置段添加server-id(需与主服务器及其他从服务器唯一,如从服务器1设为2,从服务器2设为3)

保存配置后重启MySQL服务,使server-id生效

3.2 指定主服务器信息

前置准备:从主服务器获取两项关键信息——当前使用的binlog日志文件名、日志偏移量(Position)

执行change master to命令:明确主服务器IP/主机名、端口、同步账户(repluser/Huawei@123)、binlog文件名及偏移量,完成主从关联配置

3.3 启动从服务器同步进程

初始状态验证:执行show slave status\G; 查看同步状态,此时IO线程和SQL线程状态均为NO,说明未启用从服务器角色

启动同步:执行start slave; 命令启用从服务器角色

最终验证:再次执行show slave status\G; ,确认IO线程和SQL线程状态均为YES,表明主从同步链路正常

3.4 同步状态异常解决方案

若启动slave后IO线程或SQL线程未全部为YES,处理步骤:

执行stop slave; 停止同步进程

重新执行change master to命令(核对主服务器配置信息,确保无错误)

再次执行start slave; 启动同步,重新验证状态

四、补充说明:虚拟机克隆场景问题处理

若从服务器是通过克隆已安装MySQL的虚拟机获得,会出现server-uuid冲突报错,解决方案:

执行命令删除uuid自动生成文件:rm -rf /var/lib/mysql/auto.cnf,重启MySQL服务后会自动生成新的唯一uuid。

五、主从同步功能测试

5.1 基础数据同步验证

主服务器操作:创建数据库、数据表,插入测试数据,验证数据写入正常

从服务器验证:执行查询命令查看对应数据库、数据表,确认数据与主服务器完全一致,同步生效

5.2 Web服务器访问验证

核心目标:验证Web服务器访问主服务器写入数据后,从服务器可正常同步

主服务器配置:创建Web服务器专用访问账户,授予增删改查(SELECT、INSERT、UPDATE、DELETE)权限

账户同步验证:在从服务器执行命令查看用户列表及权限,确认Web专用账户已同步

Web服务器测试:

① 从Web服务器连接主服务器MySQL(使用专用账户)

② 写入测试数据,验证数据正常存储

③ 从服务器验证:查询数据,确认同步成功

④ 可选验证:从Web服务器连接从服务器,查看同步后的数据

六、主从同步故障排查方法

6.1 错误信息查看

当IO线程或SQL线程状态异常时,通过show slave status\G; 命令可查看详细报错信息,定位故障原因。

6.2 常见故障原因及解决方案

IO线程异常: 核心原因:change master to命令中主服务器配置项错误(如IP/端口错误、同步账户密码错误、binlog文件名或偏移量错误) 解决方案:核对主服务器信息,重新执行stop slave; + change master to; + start slave; 流程

SQL线程异常: 核心原因:从服务器执行中继日志(relay log)中的SQL命令时失败,常见场景为命令依赖的数据库/数据表在从服务器不存在 解决方案:① 在主服务器对目标库表执行完全备份 ② 将备份文件拷贝至从服务器并恢复(确保库名、表结构、字符集与主服务器一致) ③ 重启同步进程

七、一主多从架构扩展

7.1 架构优势

通过增加从服务器节点,解决单从服务器场景下的单点故障问题,提升架构可用性,同时可分担主服务器读压力。

7.2 扩展配置(以MySQL55作为新增从服务器为例)

步骤1:配置唯一标识:修改MySQL55的主配置文件,指定唯一server-id(如4),重启MySQL服务

步骤2:数据一致性准备:

① 查看主服务器当前binlog日志文件名及偏移量

② 在主服务器对现有数据执行完全备份(如mysqldump命令)

③ 将备份文件拷贝至MySQL55

④ 在MySQL55恢复备份数据,确保与主服务器数据一致

步骤3:关联主服务器:执行change master to命令,配置主服务器信息(同3.2步骤)

步骤4:启动同步并验证:执行start slave; ,通过show slave status\G; 确认IO线程和SQL线程均为YES

7.3 扩展验证

主服务器操作:插入新测试数据

新增从服务器验证:查询数据,确认同步成功

权限配置:在新增从服务器(MySQL55)创建Web访问专用账户并授予对应权限

八、其他常见主从同步架构

1. 主-从-从架构:在一主多从基础上,新增从服务器从现有从服务器同步数据,进一步分担主服务器压力

2. 主-主架构(互为主从):两台服务器双向同步,均支持Web服务器访问,提升业务可用性(需注意避免数据冲突)

http://www.jsqmd.com/news/120649/

相关文章:

  • 基于Spring Boot的新生报到管理系统的设计与实现毕业设计源码
  • 精品UI知识付费系统源码 响应式视频教程知识付费软件下载网站模板
  • 143_尚硅谷_数组的快速入门
  • Excalidraw电影分镜脚本:影像创作预演
  • ATTCK实战系列(一)红日靶场1
  • Excalidraw CI/CD流水线搭建:代码变更自动部署
  • 如何解决OpenEuler报错checking for liblz4... no configure: error: Package requirements (liblz4)问题
  • 基于Spring Boot的智慧文旅社区论坛系统设计与实现毕设源码
  • OpenDDS性能测试框架Bench
  • 蓝凌EKP产品:一次 Hibernate 乐观锁 + 死锁的深度踩坑实录
  • Excalidraw撤销重做层级限制:最多能回退几步?
  • Java中给String添加下划线
  • Excalidraw作战室应用:突发事件应急指挥
  • HECTF2025
  • Excalidraw批量操作支持吗?多选编辑效率评估
  • Excalidraw负载均衡配置:高并发场景下的稳定性保障
  • 战略落地:平衡计分卡如何构建从目标到任务的执行体系?
  • Day8 链表的基础操作III -卡码网C++基础课
  • 打印机驱动安装全攻略:从准备到验证一步到位
  • 打印机驱动安装全攻略:从准备到验证一步到位
  • 018.递归分治
  • Excalidraw语音注释功能设想:多模态交互探索
  • Excalidraw响应式设计能力:适配不同屏幕尺寸
  • haproxy基本了解
  • Excalidraw源码阅读笔记:核心模块架构剖析
  • 详细介绍:论文分享 |迈向自主防御:零接触零信任与AI如何重塑物联网安全
  • 一个人能保持松弛感的来源
  • Excalidraw搜索功能实测:快速定位画布元素
  • 第62天(中等题 数据结构)
  • Excalidraw文档编写规范:Markdown语法与示例