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

    #############################################################

    ##################### run mysql########################

    ############################################################

    1-1、docker run

    docker search mysql5.7;

    docker run --name master -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 -d 镜像ID;

    docker run --name slave -e MYSQL_ROOT_PASSWORD=123456 -p 23306:3306 -d 镜像ID;

    --name 容器命名
    -e    MYSQL_ROOT_PASSWORD=123456 配置mysql的root用户的登陆密码
    -p:端口映射,此处映射主机13306端口到容器master的3306端口
    -d:成功启动容器后输出容器的完整ID

    #############################################################

    #####################master#################################

    #############################################################

    获取root权限,进入的CONTAINER name:master

    docker exec -ti -u root master bash

    2-1   ifconifg 172.17.0.2

    2-2、修改/ect/my.cnf**********************
    --my.cnf增加下面两行
    server_id=100
    log-bin=mysql-bin

    重启容器:docker restart master

    2-3、进入mysql命令**********************
    mysql -u root 如下mysql命令
    mysql->

    2-4、//执行下面命令进行复制授权**********************
    mysql-> CREATE USER 'slave'@'%' IDENTIFIED BY '12345678';
    mysql-> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
    2-5、//检查命令********************************************
    mysql-> show master status;
    如下:

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000002 | 617 | | | |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.01 sec)

    #############################################################

    #####################slave#################################

    #############################################################
    docker exec -ti -u root slave bash

    3-1 ifconifg 172.17.0.3

    3-2、修改/ect/my.cnf**********************
    --my.cnf增加下面两行
    server_id=101
    log-bin=mysql-bin

    重启容器:docker restart slave

    3-3、重启容器进入容器再进入mysql命令**********************
    mysql -u root 如下mysql命令
    mysql->change master to master_host='172.17.0.2', master_user='slave', master_password='12345678',
    master_port=3306, master_log_file='mysql-bin.000002', master_log_pos=617, master_connect_retry=30;

    #master_host='172.17.0.2' 参考 2-1
    #master_user='slave', master_password='12345678' 参考 2-4
    #master_log_file='mysql-bin.000002', master_log_pos=617 参考 2-5

    重启容器:docker restart slave

    3-4、//查看主从同步状态
    show slave status G;


    Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 表明配置成功


    配置 master_log_file='mysql-bin.000002', master_log_pos=617,
    两个参数要注意 和 show master status 输出的值保致

    ##############################################

    参考:https://www.cnblogs.com/liuzhang/p/9299336.html

    docker exec -ti -u root slave bash   加参数-u root  可以直接进入容器slave的以root用户登录

  • 相关阅读:
    socket实现一个简单的echo服务
    Netty实现丢弃服务协议(Netty4.X学习一)
    大型情感剧集Selenium:8_selenium网页截图的四种方法
    python原类、类的创建过程与方法
    Flask使用bootstrap为HttpServer添加上传文件功能
    充满含金量的一场云原生Meetup,入场券免费发送中……
    Hadoop伪分布式集群的安装部署
    从缓冲池命中率角度判断自己的MYSQL数据库是否需要扩容内存
    MySQL分区表概述
    如何防止mysql数据库被勒索
  • 原文地址:https://www.cnblogs.com/smallfa/p/11142348.html
Copyright © 2011-2022 走看看