mysql开启基于位点的主从复制

36 篇文章 0 订阅
本文详细描述了如何在MySQL中配置主从复制,包括主库和从库的设置步骤,以及如何处理错误和高级配置选项。
摘要由CSDN通过智能技术生成

MySQL的主从复制涉及至少两个MySQL实例:一个主库(Master)和一个或多个从库(Slave)。主库负责处理事务并记录所有变更到二进制日志(binary log)中,而从库通过读取并应用这些变更来保持与主库的数据一致。

以下是一个高级步骤指南,用以开启主从复制:

主库配置

  1. 在主库上,编辑MySQL配置文件(通常是 my.cnfmy.ini),通常位于 /etc/mysql//etc//etc/mysql/mysql.conf.d/目录下。

    [mysqld]
    server-id = 1
    log_bin = mysql-bin
    
    
  2. 重启MySQL服务以应用更改。

    sudo service mysql restart
  3. 登录到MySQL并创建一个具有复制权限的用户。

    CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
    FLUSH PRIVILEGES;
    
  4. 记录当前的二进制日志位置。

    SHOW MASTER STATUS;

    输出会显示当前的二进制文件名和位置,例如:mysql-bin.000001 和位置 107. 你需要这些信息来配置从库。

从库配置

  1. 在从库上,编辑MySQL配置文件。

    [mysqld]
    server-id = 2
    log_bin =mysql-bin             # 可选,如果打算设置从库为其他从库的主库
    read_only = 1                                      # 确保从库为只读模式
    
  2. 重启MySQL服务。

    sudo service mysql restart
  3. 登录到MySQL并设置复制。

    CHANGE MASTER TO
      MASTER_HOST = 'master_ip_address',
      MASTER_USER = 'replicator',
      MASTER_PASSWORD = 'password',
      MASTER_LOG_FILE = 'recorded_log_file_name',
      MASTER_LOG_POS = recorded_log_position;
    
    从 MySQL 8.0.23 开始以后的版本使用:
    CHANGE REPLICATION SOURCE TO
             SOURCE_HOST='source_host_name',
             SOURCE_USER='replication_user_name',
             SOURCE_PASSWORD='replication_password',
             SOURCE_LOG_FILE='recorded_log_file_name',
             SOURCE_LOG_POS=recorded_log_position;

    使用前面在主库上记录的文件名及位置设置 MASTER_LOG_FILEMASTER_LOG_POS

  4. 启动复制进程。

    START SLAVE;
  5. 检查从库复制状态。

    SHOW SLAVE STATUS\G

    确认 Slave_IO_RunningSlave_SQL_Running 两项都是 Yes

  6. 错误处理

查看具体的错误信息

	 SELECT * FROM performance_schema.replication_applier_status_by_worker WHERE LAST_ERROR_NUMBER != 0;

跳过错误

STOP SLAVE;
SET GLOBAL sql_slave_skip_counter = 1; -- 跳过一个事务
START SLAVE;

        这就完成了一个基本的MySQL主从复制配置。如果主库有多个库(databases)或特殊的复制需求,可能需要进行更详细的配置和准备工作。考虑复制过滤选项、数据一致性验证步骤,以及复制中断和延迟的管理。此外,在高版本的MySQL中,可能需要设置 binlog_format(默认为 ROW)。确保在配置主从复制之前,所有参与的MySQL服务器都是运行着相同版本的MySQL,以避免不兼容问题。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值