• mysql主从同步


    原理:

      master记录数据更改操作

        - 启用binlog日志
        - 设置binlog日志格式
        - 设置server_id

      slave运行2个线程

        - Slave_IO:复制master主机binlog日志文件里面的SQL到本机的relay-log文件里
        - Slave_SQL:执行本机的relay-log文件里的SQL语句,重现master的数据操作


    构建:


      确保数据相同


      配置主服务器master

        1.修改/etc/my.cnf

    [mysqld]
    log_bin=master0    //启用binlog日志,并指定文件名前缀
    server_id = 10 //指定服务器ID号
    binlog-format='mixed'    //指定日志格式(row,statement,mixed)
    View Code

        2.创建授权用户

    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.4.%' IDENTIFIED BY 'pwd123';
    View Code

        3.查看master同步状态(当前日志文件名、偏移位置)

    mysql> SHOW MASTER STATUSG;
    mysql> show slave hosts;                    # 查看当前从库
    View Code

      

      配置从服务器slave

        1.修改/etc/my.cnf

    [mysqld]
    log_bin=slave1    //启动SQL日志,并指定文件名前缀
    server_id = 20 //指定服务器ID号,不要与Master的相同
    binlog-format='mixed'    
    # log_slave_updates //允许级联复制,主从从结构使用
    View Code

        2.连接master

    mysql> CHANGE MASTER TO MASTER_HOST='192.168.4.10', # 主库对应的ip
    -> MASTER_USER='repl',
    -> MASTER_PASSWORD='pwd123',
    -> MASTER_LOG_FILE='dbsvr1-bin.000001', //对应Master的日志文件
    -> MASTER_LOG_POS=0; //对应Master的日志偏移位置
    View Code

        3.启动slave

    mysql> start slave;
    View Code

        4.查看slave(IO和SQL线程的状态)

    mysql> show slave statusG;
    View Code

    常用配置

      master服务器

        [mysqld]

        binlog_do_db=name      # 设置master对哪些库记录日志
        binlog_ignore_db=name    # 设置master对哪些库不记录日志

      slave服务器

        [mysqld]

        log_slave_updates     # 记录从库更新,允许链式复制(A—B—C)

        relay_log=file_name     # 指定中继日志文件名

        replicate_do_db=db_name    # 复制指定库,可设置多条

        replicate_ignore_db=db_name  # 不复制哪些库,与do-db 选一种即可        

  • 相关阅读:
    6.简易计算器
    5.用户密码管理
    4.方法重载
    3.对象数组做参数
    2.迷你DVD管理系统
    1.二维数组计算班级成绩
    31.向数组中插入一个元素
    30.使用Arrays类的各种方法
    Java开发中的23种设计模式详解(转)
    个人代码归档
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10338250.html
Copyright © 2020-2023  润新知