zoukankan      html  css  js  c++  java
  • (十三)MySQL主从复制

    (1)工作原理

    (2)主从实现

    1) 环境介绍

    cat /etc/redhat-release 
    CentOS Linux release 7.3.1611 (Core)
    

    MySQL版本:5.7

    mysql> select version();
    +------------+
    | version()  |
    +------------+
    | 5.7.22-log |
    +------------+
    

    2) master端配置

    • 准备数据
    mysql>	create database testdb;
    mysql>	create table testdb.t1(id int,name varchar(50));
    mysql>	insert into testdb.t1 values(1,'jack');
    mysql>	insert into testdb.t1 values(2,'alex');
    
    • 开启二进制日志和配置server-id
    #vim /etc/my.cnf
    log-bin
    server-id=1
    
    • 重启数据库
    #systemctl restart mysqld
    
    • 创建授权账号
    mysql> grant replication slave,replication client on *.* to 'rep'@'192.168.111.%' identified by 'Reprep@123';
    mysql> flush privileges;
    
    • 备份数据库
    mysqldump -uroot -pRedhat@123 -A -R  --single-transaction --master-data=1 --flush-logs >$(date +%F)-mysql-all.sql
    
    • 把备份的数据库文件拷贝到从库主机上
    scp -r 2018-04-26-mysql-all.sql root@192.168.111.152:/root
    
    • 在完整备份后在创建一些数据
    mysql> insert into testdb.t1 values(3,'www');
    mysql> insert into testdb.t1 values(4,'yyyy');
    

    3)slave端配置

    • 验证主库创建的账号是否能够正常登陆,也验证是否有防火墙问题
    # mysql -h192.168.111.151 -urep -p'Reprep@123'
    
    • 配置从库的server-id和设置从库只读
      注意应用程序连接从库的权限不要给所有权限,只让从库只读
    #vim /etc/my.cnf
    server-id=2
    read-only 
    
    • 重启数据库
    #systemctl restart mysqld
    
    • 把备份导入到从库上:强烈建议使用source方法导入sql备份到从库中
      不建议使用mysql -uroot -pRedhat@123 </root/2018-04-26-mysql-all.sql,不然change master需要指定pos文件和位置点
    mysql>source /root/2018-04-26-mysql-all.sql   
    
    • 连接主库
    mysql> change master to 
        -> master_host='192.168.111.151',               \生成环境建议使用主机名,不建议使用ip地址
        -> master_user='rep',
        -> master_password='Reprep@123';
    
    • 开启复制和验证状态
    mysql> start slave;
    mysql> show slave statusG
          Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    
    • 验证数据
    mysql> select * from testdb.t1;
    +------+------+
    | id   | name |
    +------+------+
    |    1 | jack |
    |    2 | alex |
    |    3 | www  |
    |    4 | yyyy |
    +------+------+
    
  • 相关阅读:
    数字货币交易所数据标准格式
    Python3量化技术常用插件
    线上线下流量趋势
    数字货币做市技术——随机价格
    OKEX API v1 SDK基于 Python 实现
    CEOBI交易所接口文档
    递归拉取订单列表的方法
    XT交易所Websocket API
    XT交易所API
    获取合约日期
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/8955843.html
Copyright © 2011-2022 走看看