zoukankan      html  css  js  c++  java
  • Linux mysql 5.7.23 主从复制(异步复制)

    docker容器主节点: 172.17.0.9 
    docker容器子节点: 172.17.0.10
    异步复制:
    首先确认主库和从库是否一致,最好都是刚刚初始化的干净的数据库
    如果主库正在使用不能初始化,就要先将主库的内容复制到从库上再做同步
    1、先把master做一个备份,把备份出的文件传给slave
    [root@99f856c64c02 /]# mysqldump -uroot -p -B test > test.dump
    Enter password: 
    [root@72bd50b77c93 data]# mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 4
    Server version: 5.7.23 MySQL Community Server (GPL)
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    mysql> source /data/test.dump
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 1 row affected (0.00 sec)
    Database changed
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.01 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 1 row affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+
    5 rows in set (0.00 sec)
    再到slave上将数据恢复
    mysql> source /mysql/test3.sql
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test1              |
    | test2              |
    | test3              |
    +--------------------+
    6 rows in set (0.00 sec)
    2.开启主节点Bin-log日志

    vi /etc/my.cnf

    添加bin-log配置 

    server-id=1
    log-bin=mysql-bin
    binlog_format=row

     systemctl restart mysqld 

    3.创建复制用户,赋予用户权限
    mysql> grant replication slave on *.* to 'repl'@'%' identified by 'mysql';
    mysql> flush privileges;
    mysql> show master status;       要记住position
    +------------------+----------+--------------+--------------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         | Executed_Gtid_Set |
    +------------------+----------+--------------+--------------------------+-------------------+
    | mysql-bin.000003 |     683 |              | mysql,information_schema |                   |
    +------------------+----------+--------------+--------------------------+-------------------+
    1 row in set (0.00 sec)
    4.再到slave
    mysql>  change master to master_host='172.17.0.9',master_port=3306,master_user='repl',
        ->  master_password='mysql‘’,master_log_file='mysql-bin.000003',master_log_pos=683;
    Query OK, 0 rows affected, 2 warnings (0.01 sec)
    mysql>  start slave;
    Query OK, 0 rows affected (0.09 sec)
    mysql> show slave statusG;
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 172.17.0.9
                      Master_User: repl
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000003
              Read_Master_Log_Pos: 154
                   Relay_Log_File: 72bd50b77c93-relay-bin.000002
                    Relay_Log_Pos: 320
            Relay_Master_Log_File: mysql-bin.000003
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                  Replicate_Do_DB: 
              Replicate_Ignore_DB: 
               Replicate_Do_Table: 
           Replicate_Ignore_Table: 
          Replicate_Wild_Do_Table: 
      Replicate_Wild_Ignore_Table: 
                       Last_Errno: 0
                       Last_Error: 
                     Skip_Counter: 0
              Exec_Master_Log_Pos: 154
                  Relay_Log_Space: 534
                  Until_Condition: None
                   Until_Log_File: 
                    Until_Log_Pos: 0
               Master_SSL_Allowed: No
               Master_SSL_CA_File: 
               Master_SSL_CA_Path: 
                  Master_SSL_Cert: 
                Master_SSL_Cipher: 
                   Master_SSL_Key: 
            Seconds_Behind_Master: 0
    Master_SSL_Verify_Server_Cert: No
                    Last_IO_Errno: 0
                    Last_IO_Error: 
                   Last_SQL_Errno: 0
                   Last_SQL_Error: 
      Replicate_Ignore_Server_Ids: 
                 Master_Server_Id: 1
                      Master_UUID: 8ce1a2b2-b01c-11e8-90a0-0242ac11000a
                 Master_Info_File: /usr/local/mysql/data/master.info
                        SQL_Delay: 0
              SQL_Remaining_Delay: NULL
          Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
               Master_Retry_Count: 86400
                      Master_Bind: 
          Last_IO_Error_Timestamp: 
         Last_SQL_Error_Timestamp: 
                   Master_SSL_Crl: 
               Master_SSL_Crlpath: 
               Retrieved_Gtid_Set: 
                Executed_Gtid_Set: 
                    Auto_Position: 0
             Replicate_Rewrite_DB: 
                     Channel_Name: 
               Master_TLS_Version: 
    1 row in set (0.00 sec)
    看到两个yes 就基本成功了 可以在主库上进行一些操作来测试一下

    5.测试结果:

     主库插入数据

    [root@99f856c64c02 mysql]# mysql -uroot
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 5
    Server version: 5.7.23-log MySQL Community Server (GPL)
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    mysql> use test;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    mysql> select * from t;
    +------+------+------+
    | id   | name | age  |
    +------+------+------+
    |    1 | dd   |   10 |
    +------+------+------+
    1 row in set (0.00 sec)
    mysql> insert into t values(2,'2222',11);
    Query OK, 1 row affected (0.00 sec)
    mysql> 

    登录slave数据库

    mysql> use test;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    mysql> select * from t;
    +------+------+------+
    | id   | name | age  |
    +------+------+------+
    |    1 | dd   |   10 |
    |    2 | 2222 |   11 |
    +------+------+------+
    2 rows in set (0.00 sec)
    mysql> 
    mysql> 
    mysql> 
  • 相关阅读:
    预分频之三
    MySQL超时配置
    随机森林深入理解
    决策树算法——ID3
    指数平滑法
    最小二乘法的Java实现
    JS实战
    CSS布局实战
    Win7 Python开发环境搭建
    神经网络正向传播与反向传播公式
  • 原文地址:https://www.cnblogs.com/EikiXu/p/9591902.html
Copyright © 2011-2022 走看看