zoukankan      html  css  js  c++  java
  • mysql 5.7 docker 主从复制架构搭建

    环境版本:
    MySQL :  5.7.13
    Docker : 1.11.2
    CentOS : 7.1
     
    1.先在两个物理机上分别安装两个MySQL.命令如下
    docker pull mysql:5.7.13
    docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13
    2.在主库上创建一个复制账户
    GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.2.103' IDENTIFIED BY 'qaz.00JK';
    复制账户为: rep1
    指定从库的IP必须为: 192.168.2.103 
    复制密码为: qaz.00JK
    3.修改主库的配置文件 (麻烦,应该有更方便的修改方式)
    3.1先从docker拷贝配置文件到主机/root 目录: 
    docker cp anuo-mysql:/etc/mysql/my.cnf /root
    3.2在主机打开 my.cnf , 在 [mysqld] 节点最后加上
    log-bin=mysql-bin
    server-id=1
    3.3 再把此文件上传到docker mysql 里面覆盖
    docker cp /root/my.cnf  anuo-mysql:/etc/mysql/my.cnf
    3.4 重启 mysql 的docker , 让配置生效
    docker restart anuo-mysql
    4. 修改从库的配置文件
    跟第三步一样, 唯一不同是
    server-id=2
    5. 开始备份, 在主库执行以下命令, 让主库所有表置于只读不能写的状态, 这样达到主从库数据一致性
    FLUSH TABLES WITH READ LOCK;
    6. 将主库的数据库备份在从库还原
    用navicat for mysql 很方便操作
    7. 从库还原后, 释放主库的读锁, 这样主库恢复写权限
    unlock tables;
    8.配置从库连接主库, 在从库上执行 
    CHANGE MASTER TO 
    MASTER_HOST='192.168.2.108',
    MASTER_PORT=3306,
    MASTER_USER='rep1',
    MASTER_PASSWORD='qaz.00JK',
    MASTER_LOG_FILE='mysql-bin.000002',
    MASTER_LOG_POS=898;
     
    最后两项
    MASTER_LOG_FILE 和  MASTER_LOG_POS
    在主库执行 : SHOW MASTER STATUS; 命令可以取得
    对应的字段是 File 和 Position
     
    9. 在从库启动 slave 线程开始同步
    START SLAVE;
     
    10.在从库 查看同步状态
    show slave status;
    如果看到 Slave_Io_State 字段有 :
    Waiting for master to send event ... 
    那就成功了 ! ! !
  • 相关阅读:
    树形dp--P2014 [CTSC1997]选课
    背包变形--P1759 通天之潜水
    区间dp--P1880 [NOI1995]石子合并
    动态规划--P2758 编辑距离
    筛法--CF449C Jzzhu and Apples
    BZOJ3998: [TJOI2015]弦论(后缀自动机,Parent树)
    BZOJ3530: [Sdoi2014]数数(Trie图,数位Dp)
    BZOJ1444: [Jsoi2009]有趣的游戏(Trie图,矩乘)
    BZOJ1195: [HNOI2006]最短母串(Trie图,搜索)
    BZOJ3238: [Ahoi2013]差异(后缀数组)
  • 原文地址:https://www.cnblogs.com/anuo/p/5699128.html
Copyright © 2011-2022 走看看