zoukankan      html  css  js  c++  java
  • Docker配置mysql互为主从

    配置准备

    两台机器

    两台机器:A(193.168.10.101)  B(193.168.10.102) 做好ssh免密登录

    mysql大版本需要一致,小版本可忽略

    并且两台机器已经安装好了docker 

    yum install docker

    下载mysql镜像

    docker pull mysql:5.6.31

    mysql容器准备

    两台机器分别启动mysql容器

    [root@bigdata101 ~]# docker run -di -p 33305:3306 --name mysql_101 -v /usr/local/mysql_docker/101/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.31
    
    [root@bigdata102 ~]# docker run -di -p 33305:3306 --name mysql_102 -v /usr/local/mysql_docker/102/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.31

    查看容器是否启动

    [root@bigdata101 ~]# docker ps

    分别进入两个容器,安装vim,并且修改配置文件

    [root@bigdata101 ~]# docker exec -it mysql_101 /bin/bash
    root@63485bfccaa1:/# apt-get update
    root@63485bfccaa1:/# apt-get install vim  
    
    root@63485bfccaa1:/# vi /etc/mysql/my.cnf  
    
    #在配置文件最后添加
    server-id=1
    auto_increment_offset=1
    auto_increment_increment=2
    skip-slave-start
    log-slave-updates=true
    [root@bigdata102 ~]# docker exec -it mysql_102 /bin/bash
    root@57ce31a494ad:/# apt-get update
    root@57ce31a494ad:/# apt-get install vim  
    
    root@57ce31a494ad:/# vi /etc/mysql/my.cnf  
    
    #在配置文件最后添加
    server-id=2
    auto_increment_offset=2
    auto_increment_increment=2
    skip-slave-start
    log-slave-updates=true

    分别重启mysql容器

    [root@bigdata101 ~]# docker restart mysql_101
    
    [root@bigdata102 ~]# docker restart mysql_102

    容器配置

    A(193.168.10.101) 上的容器配置

    给主机B 赋予mysql权限

    grant all on *.* to 'slave'@193.168.10.102 identified by '123456';

    初始化bin-log日志

    reset master;
    show master status;

    B(193.168.10.102) 上的容器配置

    给主机A 赋予mysql权限

    grant all on *.* to 'slave'@193.168.10.101 identified by '123456';

    初始化bin-log日志

    reset master;
    show master status;

    容器同步配置

    在主机A的容器上重新登录mysql后执行:

    change master to master_host='193.168.10.102',master_port=33305,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;

    这里的master_host是指主机B的ip地址,master_port是B上的mysql容器启动时赋予的端口,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。

    然后开启同步  执行:

    start slave;

    查看是否成功:

    show slave statusG;

    在主机B的容器上重新登录mysql执行:

    change master to master_host='193.168.10.101',master_port=33305,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
    start slave;
    show slave statusG;

    此文大部分配置与 Linux下Mysql数据库互为主从的配置过程 基本一致,只是本文是基于docker的配置,所以略作修改,如有细节问题不清楚,可参考 Linux下Mysql数据库互为主从的配置过程

  • 相关阅读:
    uwsgi配置
    sed_shell三剑客
    grep_shell三剑客
    awk_shell三剑客
    spring(二)
    spring(一)
    5G的科普
    应用层协议基础
    IP地址相关运算(如VLSM,超网汇总)
    ARP协议基础
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/10314194.html
Copyright © 2011-2022 走看看