zoukankan      html  css  js  c++  java
  • MySQL主从复制

    主从复制:

      mysql要做到主从复制,其实依靠的是二进制日志,即:假设主服务器叫A,从服务器叫B;主从复制就是

      B跟着A学,A做什么,B就做什么。那么B怎么同步A的动作呢?现在A有一个日志功能,把自己所做的增删改查的动作

      全都记录在日志中,B只需要拿到这份日志,照着日志上面的动作施加到自己身上就可以了。这样就实现了主从复制。

    环境:

      主库:阿里云 MySQL5.7 (Windows Server2008)

      从库:个人计算机 MySQL5.7 (Win 10)

    1、配置master(主库)

      找到MySQL的配置文件,一般位于MySQL安装位置根目录或者Data文件目录中

      在[mysqld]下边,添加以下三个参数

        log-bin=mysql-bin  //将mysql二进制日志取名为mysql-bin

        binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed

        server-id=101 //为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id

     2、配置slave(从库)

      步骤同1,server-id不同即可

    3、分别重启主库从库

    4、在主库上为从库分配一个账号

    Microsoft Windows [版本 6.1.7601]
    版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
    
    C:UsersAdministrator>mysql -u root -p
    Enter password: ****
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 10
    Server version: 5.7.20-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    mysql> grant replication slave on *.* to 'slave'@'%' identified by 'slave';
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> show master status;
    +------------------+----------+--------------+------------------+---------------
    ----+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_
    Set |
    +------------------+----------+--------------+------------------+---------------
    ----+
    | mysql-bin.000002 |     1483 |              |                  |
        |
    +------------------+----------+--------------+------------------+---------------
    ----+
    1 row in set (0.00 sec)
    
    mysql>

     其中“grant replication slave on *.* to 'slave'@'%' identified by 'slave';” ,在主库上为slave账号分配了replication 权限

    “show master status;” 查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变).

    5、配置从库

    mysql> stop slave;
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:    3
    Current database: mysql
    
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> show slave status;
    Empty set (0.00 sec)
    :: 此处配置的是主库的地址
    mysql> change master to master_host='**.**.**.**';
    Query OK, 0 rows affected (0.07 sec)
    
    mysql> change master to master_user='slave';
    Query OK, 0 rows affected, 2 warnings (0.04 sec)
    
    mysql> change master to master_password='slave';
    Query OK, 0 rows affected, 2 warnings (0.04 sec)
    :: 与上一步在主库上查询的结果一致即可
    mysql> change master to master_log_file='mysql-bin.000002';
    Query OK, 0 rows affected, 1 warning (0.04 sec)
    :: 与上一步在主库上查询的结果一致即可
    mysql> change master to master_log_pos=1483;
    Query OK, 0 rows affected (0.04 sec)
    :: 开始主从复制
    mysql> start slave;
    Query OK, 0 rows affected (0.01 sec)

    6、配置完成

    如果上述步骤都正常执行完毕,那么现在就配置完成了

    使用Navicat等可视化连接工具对主库做建表、插入、删除、修改等操作

    从库会随之更新

  • 相关阅读:
    二分图 洛谷P2055 [ZJOI2009]假期的宿舍
    并查集 洛谷P1640 [SCOI2010]连续攻击游戏
    贪心 洛谷P2870 Best Cow Line, Gold
    贪心 NOIP2013 积木大赛
    快速幂 NOIP2013 转圈游戏
    倍增LCA NOIP2013 货车运输
    树形DP 洛谷P2014 选课
    KMP UVA1328 Period
    动态规划入门 BZOJ 1270 雷涛的小猫
    KMP POJ 2752Seek the Name, Seek the Fame
  • 原文地址:https://www.cnblogs.com/luxd/p/11434272.html
Copyright © 2011-2022 走看看