zoukankan      html  css  js  c++  java
  • mysql主从复制

    一 主从复制原理

    在这里插入图片描述
    大致步骤如下:

    1. 主服务器(master)把数据更改记录到二进制日志(binlog)中
    2. 从服务器(slave)把主服务器的二进制日志复制到自己的中继日志(relay log)中
    3. 从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一致性

    涉及的线程:
    MySQL主从复制涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点,如下图所示:

    1. 主节点 binary log dump 线程

    当从节点连接主节点时,主节点会创建一个log dump 线程,用于发送bin-log的内容。在读取bin-log中的操作时,此线程会对主节点上的bin-log加锁,当读取完成,甚至在发动给从节点之前,锁会被释放。

    1. 从节点I/O线程

    当从节点上执行start slave命令之后,从节点会创建一个I/O线程用来连接主节点,请求主库中更新的bin-log。I/O线程接收到主节点binlog dump 进程发来的更新之后,保存在本地relay-log中。

    1. 从节点SQL线程

    SQL线程负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。

    二 主服务器配置

    在mysql的my.cnf文件最后添加

    [mysqld]
    log-bin=master-binlog
    binlog_format=mixed
    server-id=1
    

    重启
    mysql -uroot -p输入密码进入mysql
    使用 show master status G查看状态
    在这里插入图片描述
    使用 show variables like ‘%log_bin%’ 查看配置情况
    在这里插入图片描述

    三 从服务器配置

    在mysql的my.cnf文件最后添加

    [mysqld]
    relay_log=salve-relay-log
    server-id=2
    

    重启
    mysql -uroot -p输入密码进入mysql
    stop slave; 关闭slave(如果你以前配置过主从的话,一定要先关闭)
    配置主服务器:

    change master to 
    master_host='176.123.123.111',
    master_port=3306,
    master_user='root',
    master_password='123456',
    master_log_file='master-binlog.000001', //查看主服务器得到 看上图
    master_log_pos=154    //查看主服务器得到 看上图
    

    start slave; 启动从服务器
    show slave status; 查看是否配置成功

  • 相关阅读:
    HDU 5313 bitset优化背包
    bzoj 2595 斯坦纳树
    COJ 1287 求匹配串在模式串中出现的次数
    HDU 5381 The sum of gcd
    POJ 1739
    HDU 3377 插头dp
    HDU 1693 二进制表示的简单插头dp
    HDU 5353
    URAL 1519 基础插头DP
    UVA 10294 等价类计数
  • 原文地址:https://www.cnblogs.com/paper-man/p/13284641.html
Copyright © 2011-2022 走看看