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

  • 相关阅读:
    Hibernate延迟加载、三种状态、脏检查 缓存
    Hibernate入门案例
    Hibernate入门案例及增删改查
    PasswordHelper 对user对象的password进行加密重设
    shrio 加密/编码
    shrio int配置
    shrio 授权
    JUnit中assertEquals和assertSame方法的不同
    shrio 身份认证流程-Realm
    shrio 登录/退出
  • 原文地址:https://www.cnblogs.com/paper-man/p/13284641.html
Copyright © 2011-2022 走看看