• Mysql5.6主从复制


    搭建(192.168.1.10 -> 192.168.1.20)

    1 master 上执行

    阻塞 DML
    flush tables with read lock;

    记录 File 和 Position
    show master status;

    mysqldump -u root -p --all-databases > /data/dbbak/db.dmp

    如果此 master 同时亦为 slave
    mysqldump -u root -p --all-databases --dump-slave > /data/dbbak/db.dmp

    unlock tables;

    scp /data/dbbak/db.dmp mysql@192.168.1.20:/data/dbbak

    2 slave 上执行

    如果备份产生于 slave
    mysqladmin -u root -p shutdown
    /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-slave-start &

    mysql -u root -p < /data/dbbak/db.dmp

    3 master 上执行

    [mysqld]
    server-id = 110
    log-bin = /data/mysql/mysql-bin
    binlog_format = MIXED
    skip-slave-start = 1
    #auto_increment_offset = 1
    #auto_increment_increment = 1

    create user 'repl'@'192.168.1.20' identified by 'xxxxxxxx';
    grant replication slave on *.* to 'repl'@'192.168.1.20';

    明: 这里的IP指的从库的IP,如主库是192.168.1.10,这里加的连接用户是:192.168.1.20,不是1.10的IP。

    4 slave 上执行

    [mysqld]
    server-id = 120
    log-bin = /data/mysql/mysql-bin
    binlog_format = MIXED
    skip-slave-start = 1
    relay-log = rep_relay_log
    relay-log-index = rep_relay_log
    read_only = 1
    #sync_master_info = 0
    #sync_relay_log = 0
    #sync_relay_log_info = 0
    #log-slave-updates = 1
    #replicate-rewrite-db = cisdb -> newdb
    #replicate-do-db = cisdb
    #replicate-ignore-db = cisdb
    #replicate-do-table = cisdb.t1
    #replicate-ignore-table = cisdb.t1
    #replicate-wild-do-table = cisdb.%
    #replicate-wild-ignore-table = cisdb.%
    #slave-skip-errors = xxxx,xxxx
    #relay_log_purge
    #relay_log_space_limit
    #slave_exec_mode
    #slave_compressed_protocol
    #slave_parallel_workers

    change master to
    MASTER_HOST='192.168.60.202',
    MASTER_USER='repl',
    MASTER_PASSWORD='1',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=120;

    start slave;

    5 salve 上执行

    检查 Slave_IO_Running 和 Slave_SQL_Running 是否为 Yes
    检查 Seconds_Behind_Master
    show slave statusG;

    检查 Slave_SQL_Running 线程的 Time 值(延时,单位为秒)
    show processlistG;

    为方便主从切换:
    create user 'repl'@'192.168.1.10' identified by 'xxxxxxxx';
    grant replication slave on *.* to 'repl'@'192.168.1.10';

     明: 这里的IP指的从库的IP,如从库是192.168.1.20,切换后从库就是1.10,这里加的连接用户是:192.168.1.10,部署1.20的IP。

     新加的用户是,从库连接的IP,用户名和密码。

      当用户权限中没有SUPER权限(ALL权限是包括SUPER的)时,从库的read-only生效!

         使用start slave命令开启失败:

      mysql> start slave;

      ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

      使用reset slave命令解决:

      mysql> reset slave;

      Query OK, 0 rows affected (0.01 sec)

      mysql> start slave;

  • 相关阅读:
    单例模式简介
    WebSocket简介
    向数据库中插入非空字段并赋初值
    MD5加(解)密代码实现
    DES字符串加(解)密代码实现
    常见状态码
    13.Roman to Integer&#160;
    14.Longest Common Prefix
    20.Valid Parentheses
    26.Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/zping/p/4810580.html
Copyright © 2020-2023  润新知