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用户登录

  • 相关阅读:
    Redis中的批量删除数据库中的Key
    Solr中初学Demo
    Solr中Schema.xml中文版
    Eclipse中web项目的默认发布路径改为外部Tomcat中webapp路径
    Java操作XML的工具类
    Java中创建操作文件和文件夹的工具类
    Java中的操作日期的工具类
    Java POI操作Excle工具类
    【转】怎样写一个解释器
    【转】什么是语义学
  • 原文地址:https://www.cnblogs.com/smallfa/p/11142348.html
Copyright © 2011-2022 走看看