MySQL 单表主从同步实现流程

目标

本文将指导您如何在 MySQL 数据库中实现单表的主从同步。

前提条件

在开始之前,请确保您已经具备以下条件:

  • 安装并配置好 MySQL 数据库
  • 在主数据库和从数据库上创建了相同的数据库和表结构

实现步骤

以下是实现 MySQL 单表主从同步的步骤:

步骤 描述
1 配置主数据库
2 配置从数据库
3 启动主从同步
4 测试主从同步

步骤 1:配置主数据库

  1. 打开主数据库的配置文件 my.cnf (通常位于 /etc/mysql/ 目录下)。

  2. 在配置文件中找到 [mysqld] 这一段落。

  3. 添加以下配置项:

    log-bin=mysql-bin  # 开启二进制日志
    server-id=1        # 设置服务器ID
    

    请根据自己的实际情况修改 server-id 的值,确保每个数据库服务器的ID唯一。

  4. 保存并关闭配置文件。

  5. 重启主数据库以使配置生效:

    sudo service mysql restart
    

步骤 2:配置从数据库

  1. 打开从数据库的配置文件 my.cnf

  2. 在配置文件中找到 [mysqld] 这一段落。

  3. 添加以下配置项:

    server-id=2  # 设置服务器ID,确保与主数据库不同
    

    请根据自己的实际情况修改 server-id 的值,确保每个数据库服务器的ID唯一。

  4. 保存并关闭配置文件。

  5. 重启从数据库以使配置生效。

步骤 3:启动主从同步

  1. 登录到从数据库上的 MySQL 命令行界面。

  2. 运行以下命令:

    CHANGE MASTER TO
      MASTER_HOST='<主数据库IP>',
      MASTER_USER='<主数据库用户名>',
      MASTER_PASSWORD='<主数据库密码>',
      MASTER_LOG_FILE='<主数据库二进制日志文件>',
      MASTER_LOG_POS=<主数据库二进制日志位置>;
    

    请替换 <主数据库IP> 为主数据库的IP地址,<主数据库用户名><主数据库密码> 分别为连接主数据库所需的用户名和密码。 <主数据库二进制日志文件><主数据库二进制日志位置> 分别为主数据库上正在写入的二进制日志文件和位置,可以通过以下命令查询:

    SHOW MASTER STATUS;
    
  3. 启动主从同步:

    START SLAVE;
    

步骤 4:测试主从同步

  1. 在主数据库上进行增删改操作,例如插入一条新记录:

    INSERT INTO <表名>(<列名1>, <列名2>, ...) VALUES (<值1>, <值2>, ...);
    
  2. 在从数据库上查询是否同步成功:

    SELECT * FROM <表名>;
    

关系图

erDiagram
    DATABASE 主数据库 {
        主数据库IP (PK)
    }
    DATABASE 从数据库 {
        从数据库IP (PK)
    }
    主数据库IP }--|> 从数据库IP

总结

通过按照以上步骤配置主从数据库,您将实现 MySQL 单表的主从同步。这样,当主数据库上发生变动时,从数据库也会同步更新,确保数据的一致性和可靠性。请记得根据实际情况修改配置项中的参数值,并在操作前备份重要数据,以防止意外情况的发生。