自学内容网 自学内容网

关于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的主从复制配置。在实际应用中,还需要注意监控复制状态、处理可能的复制延迟


原文地址:https://blog.csdn.net/weixin_54546701/article/details/140535196

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!