美文网首页
主从同步

主从同步

作者: 旅行者xy | 来源:发表于2019-12-20 11:44 被阅读0次
    大致图(来自网上)
    • 二进制日志(binary log)、中继日志(relay log)
      1、master将改变的数 记录在本地的二进制日志中;
      2、slave将master的binary log拷贝到自己的relay log
      3、中继日志事件,将数据读取到自己的数据库中

    MYSQL主从复制是异步的,串行化,有延迟
    master:slave = 1 : n

    主机配置

    master的配置文件:

    [mysqld]
    # id
    server-id=1
    # 二进制文件日志保存路径
    log-bin="D:/data/mysql-bin"
    # 错误记录文件日志
    log-error="D:/log/mysql-error"
    #主从同步是,忽略的数据库
    binlog-ignore-db=...
    #(可选)指定主从同步时,同步哪些数据库
    binlog-do-db=...

    • 主数据库授权哪个数据库为自己的slave

    GRANT REPLICATION slave,reload,super ON . TO 'root'@'192.168.11.%' IDENTIFIED BY 'root';
    flush privileges;

    • 查看主数据库的状态
      show master status;
      image.png
      记录File和Position的值(可能会变,做同步前,需要查看下最新),从机配置需要用到

    从机配置:

    slave的配置文件:

    [mysqld]
    # id
    server-id=2
    log-bin=mysql-bin
    replicate-do-db=test

    • 从机授权

    CHANGE MASTER TO
    MASTER_HOST = '192.168.2.1',
    MASTER_USER = 'root',
    MASTER_PASSWORD = '123456',
    MASTER_PORT=3306,
    master_log_file = 'mysql-bin.000001',
    master_log_pos=575;

    开启主从机同步

    • 开启
      从机:

    start slave;
    检验:show slave status \G,观察:


    image.png

    确保二者都是YES
    可查看下面的Last_IO_Error字段提示信息:
    错误原因,有可能是使用了相同的server-id

    分别查看主从中server-id

    show variables like '%server_id%'

    若是版本问题,导致的server-id不生效,可通过全局变量设置解决:
    set global server_id = 2;

    相关文章

      网友评论

          本文标题:主从同步

          本文链接:https://www.haomeiwen.com/subject/qlubnctx.html