Mysql主从分离

ZD
ZD
2024-12-16 / 8 评论 / 22 阅读 / 正在检测是否收录...

Mysql主从分离

  1. 配置主服务器(Master)

    1、修改 MySQL 配置文件(my.cnf 或 my.ini)

    [mysqld]
    log-bin=mysql-bin      # 启用二进制日志
    server-id=1            # 设置唯一的 server-id,通常 master 为 1
    binlog-do-db=test # 指定要复制的数据库
    

    2、重启 MySQL 服务

    sudo systemctl restart mysql

    3、创建复制账号

    CREATE USER 'testuser'@'%' IDENTIFIED BY 'testpassword';
    GRANT REPLICATION SLAVE ON *.* TO 'testuser'@'%';
    FLUSH PRIVILEGES;

    4、获取主服务器的二进制日志信息

    执行以下命令,记下二进制日志文件和位置:

    SHOW MASTER STATUS;

    输出类似如下:

    +---------------------+----------+--------------+------------------+
    | File                | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +---------------------+----------+--------------+------------------+
    | mysql-bin.000001    | 107      | test |                  |
    +---------------------+----------+--------------+------------------+
    
  2. 配置从服务器(Slave)

    1、修改从服务器的 MySQL 配置文件

      [mysqld]
      server-id = 2             # 从服务器的唯一 ID,通常为 2
      relay_log = /var/log/mysql/mysql-relay-bin.log  # 启用中继日志
      log_bin = /var/log/mysql/mysql-bin.log       # 启用 binlog
      read_only = 1             # 设置从库为只读模式,防止直接写数据
    

    2、重启 MySQL 服务

    sudo systemctl restart mysql
    

    3、配置从服务器连接到主服务器

    CHANGE MASTER TO
      MASTER_HOST='master_ip',        # 主库的 IP 地址
      MASTER_USER='testuser',       # 复制用户
      MASTER_PASSWORD='testpassword',     # 复制用户的密码
      MASTER_LOG_FILE='mysql-bin.000001',   # 主库的 binlog 文件名
      MASTER_LOG_POS=  107;           # 主库的 binlog 位置
      MASTER_PORT=3306;  -- 如果主库使用的端口不是默认的 3306,记得修改
    

    在这种方式下,你明确指定了从库开始复制的 binlog 文件binlog 位置

    • MASTER_LOG_FILE='mysql-bin.000001':从库将从主库的 mysql-bin.000003 文件开始复制数据。
    • MASTER_LOG_POS=107:从库将从主库的二进制日志文件 mysql-bin.000003 的位置 157 开始复制。

    这种方式通常用于以下场景:

    • 你已经在主库上进行了一些更改并且希望从特定位置开始复制。
    • 恢复某个时间点的复制,或者重新启动复制
    CHANGE MASTER TO
      MASTER_HOST='master_ip', 
      MASTER_USER='testuser',
      MASTER_PASSWORD='testpassword',
      MASTER_PORT=3306;  -- 如果主库使用的端口不是默认的 3306,记得修改
    

    MASTER_LOG_FILEMASTER_LOG_POS:如果主库的二进制日志没有启用,或者你只是初次设置复制(或者你不关心从哪个二进制日志文件开始),这两个参数可以省略。MySQL 会自动选择最新的二进制日志文件。
    4、启动从库复制进程:

    START SLAVE;

    5、查看从库的状态:

    SHOW SLAVE STATUS;
  3. 重新初始化复制

    如果主从库数据不一致或复制断开,可以尝试重新初始化复制过程:

    1. 在从库上停止复制:

      STOP SLAVE;
      RESET SLAVE ALL;
    2. 在主库上查看当前的二进制日志文件和位置:

      SHOW MASTER STATUS;
      
    3. 在从库上配置复制信息:

      CHANGE MASTER TO
          MASTER_HOST = '主库IP',
          MASTER_USER = 'testuser',
          MASTER_PASSWORD = 'testpassword',
          MASTER_LOG_FILE = '记录的File',
          MASTER_LOG_POS = 记录的Position;
      
    4. 启动从库的复制进程:

      START SLAVE;
0

评论 (8)

取消
  1. 头像
    ezejbmsuew
    Windows 10 · Google Chrome

    若能对分论点进一步细分,结构会更立体。

    回复
  2. 头像
    honsywkzpn
    Windows 10 · Google Chrome

    建议提出分阶段实施路径,增强可行性。

    回复
  3. 头像
    cmkfqsljvu
    Windows 10 · Google Chrome

    选材新颖独特,通过细节描写赋予主题鲜活生命力。

    回复
  4. 头像
    lwamqunshn
    Windows 10 · Google Chrome

    ?实用类评语?

    回复
  5. 头像
    azuskzwrkg
    Windows 10 · Google Chrome

    新车首发,新的一年,只带想赚米的人coinsrore.com

    回复
  6. 头像
    jovwkhlftc
    Windows 10 · Google Chrome

    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com

    回复
  7. 头像
    uspiqclhdh
    Windows 10 · Google Chrome

    2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

    回复
  8. 头像
    whdewvptnw
    Windows 10 · Google Chrome

    2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

    回复