首页 > 数据库 >关于MySQL主从复制的详细流程

关于MySQL主从复制的详细流程

时间:2024-07-18 23:01:33浏览次数:17  
标签:主从复制 Slave 流程 复制 MASTER MySQL 服务器 数据库

目录

关于MySQL主从复制的详细流程,可以分为以下几个主要步骤:

一、准备工作

  1. 确保环境

    • 准备至少两台服务器,一台作为主服务器(Master),另一台作为从服务器(Slave)。
    • 确保两台服务器间的网络连接畅通。
    • 安装相同版本的MySQL Server。
    • 为主服务器和从服务器分别分配唯一的服务器ID。
  2. 安装MySQL

    • 在两台服务器上分别安装MySQL数据库,并确保MySQL服务正常启动。

二、配置主服务器(Master)

  1. 修改配置文件

    • 编辑MySQL的配置文件(通常是/etc/my.cnf/etc/mysql/my.cnf)。
    • 确保以下参数被正确设置:
      [mysqld]
      log-bin=mysql-bin  # 开启二进制日志
      server-id=1        # 设置主服务器的唯一ID
      binlog-do-db=name_of_db  # 设置需要复制的数据库(可选)
      binlog-ignore-db=name_of_db  # 设置不需要复制的数据库(可选)
      
    • 重启MySQL服务以使更改生效。
  2. 创建复制用户

    • 登录到MySQL服务器。
    • 创建一个专用账户用于从服务器连接主服务器:
      CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
      GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
      FLUSH PRIVILEGES;
      
    • 注意:出于安全考虑,最好将%替换为具体的从服务器IP地址。
  3. 查看主服务器状态

    • 执行以下SQL命令查看主服务器的二进制日志位置:
      SHOW MASTER STATUS;
      
    • 记录下返回的File和Position的值,稍后在从服务器上配置时需要用到。

三、配置从服务器(Slave)

  1. 修改配置文件

    • 编辑MySQL的配置文件(同样是/etc/my.cnf/etc/mysql/my.cnf)。
    • 确保以下参数被正确设置:
      [mysqld]
      server-id=2       # 设置从服务器的唯一ID(与主服务器不同)
      relay-log=relay-bin  # 开启中继日志
      log-slave-updates=1  # 如果有多个从服务器,需要开启
      
    • 重启MySQL服务以使更改生效。
  2. 配置复制

    • 登录到MySQL服务器。
    • 使用之前记录的File和Position值配置从服务器以连接到主服务器:
      CHANGE MASTER TO
      MASTER_HOST='master_ip',
      MASTER_USER='replication_user',
      MASTER_PASSWORD='password',
      MASTER_LOG_FILE='recorded_log_file_name',
      MASTER_LOG_POS=recorded_log_position;
      
    • 启动从服务器上的复制线程:
      START SLAVE;
      
  3. 检查复制状态

    • 执行以下SQL命令查看从服务器的复制状态:
      SHOW SLAVE STATUS\G
      
    • 确认Slave_IO_RunningSlave_SQL_Running的状态都是Yes,表示复制正在正常进行。

四、数据同步(可选)

如果主服务器和从服务器上的数据不一致,需要进行数据同步。这通常通过以下步骤实现:

  1. 在主服务器上锁定数据库

    • 执行FLUSH TABLES WITH READ LOCK;命令锁定数据库,以避免写入操作。
  2. 导出主服务器数据

    • 使用mysqldump工具导出数据,并记录二进制日志的位置:
      mysqldump -u root -p --all-databases --master-data > dbdump.sql
      
  3. 解锁主服务器数据库

    • 执行UNLOCK TABLES;命令解锁数据库。
  4. 将导出的数据导入到从服务器

    • dbdump.sql文件传输到从服务器,并导入数据:
      mysql -u root -p < dbdump.sql
      

五、验证复制

  • 在主服务器上执行一些写操作(如INSERT、UPDATE、DELETE)。
  • 在从服务器上检查相应的数据是否已更新,以验证复制是否成功。

通过以上步骤,可以完成MySQL的主从复制配置。在实际应用中,还需要注意监控复制状态、处理可能的复制延迟

标签:主从复制,Slave,流程,复制,MASTER,MySQL,服务器,数据库
From: https://blog.csdn.net/weixin_54546701/article/details/140535196

相关文章

  • 【STM32芯片启动流程】——结合具体启动文件和hex文件分析
    一、前言最近想把MCU相关的知识梳理一遍,希望加深自己对相关知识的理解,同时也作为备忘录提醒自己。首先是STM32的启动过程,理解这个过程是学习IAP和OTA功能以及深入stm32内核的基础。二、总体流程介绍1.由boot引脚(boot0,boot1)选择启动模式;2.给SP、PC指针赋值;3.进入复位中......
  • Archlinux安装流程
    系统盘启动首先,将archlinux的iso文件直接放入Ventoy,直接启动盘启动就可以。(这里就不赘述Ventoy的使用了)进入系统后使用检查是否联网pingwww.baidu.com出现上图情况说明正常。(真机安装建议使用有线,无线还需要命令操作)硬盘分区开始进行分区cfdisk如图回车进入分区管理......
  • mysql触发器模板
    --当我们对dept表中的数据进行insertdeleteupdate的时候,请将这些操作记录到日志表当中--dept的表结构/*CREATETABLE`dept`(`DEPTNO`intNOTNULLCOMMENT'部门编号',`DNAME`varchar(14)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciDEFAULTNULLCOMMEN......
  • 通过脚本,将MySQL数据转换成单条insert语句
    通过命令,导出数据:SELECT*FROMusersINTOOUTFILE'/tmp/users_data.sql'FIELDSTERMINATEDBY','LINESTERMINATEDBY'\n';通过脚本,转成insert语句:#!/bin/envpython#-*-encoding:utf-8-*-#数据导出命令,注意修改表名#SELECT*FROMusersINTOOU......
  • Linux安装mysql(超详细版)
    步骤1:新建一个文件夹,专放从网络下载的文件[root@iZ2zeh6vyxsq620zifz8jaZhome]#mkdirsoft#在根目录下创建也可以步骤2:切换目录,进入soft文件中[root@iZ2zeh6vyxsq620zifz8jaZ/]#cdhome/#若第一步文件建在根目录则执行该语句,否则不执行[root@iZ2zeh6vyxsq620zif......
  • MySQL与地震学:地震波形数据的实时分析宝典
    ......
  • Flowable流程引擎学习实践
    实操版本V6.7.2一、Flowable是什么Flowable是一个使用Java编写的轻量级业务流程引擎,使用ApacheV2license协议开源。2016年10月,Activiti工作流引擎的主要开发者离开Alfresco公司并在Activiti分支基础上开启了Flowable开源项目。基于Activitiv6beta4发布......
  • mysql8在CentOS8上安装实践
    一、下载https://dev.mysql.com/downloads/mysql/历史版本:https://downloads.mysql.com/archives/community/二、解压tar-zxvf/opt/software/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz-C/usr/local修改mysql目录名称mv/usr/local/mysql-8.0.33-linux-glibc2......
  • CentOS9中MySQL8数据库备份--增量备份方案
    1.关于备份:MySQL中有完全备份、增量备份和差异备份三种常见的备份策略,这次使用增量备份定义:增量备份仅备份自上一次备份(无论是完全备份还是增量备份)以来发生变化的数据。特点:依赖于上一次备份,仅备份变化的部分,因此备份文件较小,但恢复时需要结合之前的备份。优点:备份文件......
  • 数据库MySQL指令
    数据库之搭建1、rpm-qa|grep服务名称案例:rpm-qa|grepmysql2、将所有msyql的包删除干净删除方法:(1)yumremovemysql*删除linux中的数据库(2)yumerase包名,删除linux中的数据库(3)rpm-e--nodeps包名删除linux中的数据库3、mysql的安装a.安装客户端yuminstallmysq......