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; 查看是否配置成功

  • 相关阅读:
    div定位左右居中
    highcharts绘制3D倾斜的饼图
    Echarts 图表不能渲染问题整理
    RK:系统手势监听
    RK:网络共存、Shell脚本
    泛型
    ArrayList类
    Linux(centos7)安装ClickHouse
    centos安装宝塔命令
    centos下修改hosts文件以及生效命令
  • 原文地址:https://www.cnblogs.com/paper-man/p/13284641.html
Copyright © 2011-2022 走看看