zoukankan      html  css  js  c++  java
  • docker mysql5.7 配置主从复制

    拉取mysql5.7镜像

    docker pull mysql:5.7

    运行容器

    docker run -di --name master -p3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
    docker run -di --name slave -p3308:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

    docker ps -a // 查看启动中的容器

    3307端口的为master,3308的为slave。

    创建成功后,Navicat客户端登录(win7 docker默认ip为:192.168.99.100):

    Master配置

    进入容器:

    docker exec -ti master bash

    使用命令行进入mysql:

    mysql -u root -p

    接着输入root用户的密码(密码忘记的话就网上查一下重置密码吧~),然后创建用户:

    //172.17.0.3是slave docker从机的IP;即:master = 172.17.0.2 , slave = 172.17.0.3
    // 或者使用下面命令获取容器的元信息
    docker inspect master

    // 创建用户 GRANT REPLICATION SLAVE ON *.* to 'slave'@'172.17.0.3' identified by 'slave';

    flush privileges;

    创建的这两个用户在配置slave从机时要用到。

    接下来在找到mysql的配置文件/etc/mysql/my.cnf,增加以下配置:

    [mysqld]
    # 开启binlog log-bin=mysql-bin server-id=3307 # 需要同步的数据库,如果不配置则同步全部数据库 binlog-do-db=test_db # binlog日志保留的天数,清除超过10天的日志 # 防止日志文件过大,导致磁盘空间不足 expire-logs-days=10

    譬如:

    配置完成后,退出重启mysql:

    docker restart master

    Slave配置

    进入容器:

    docker exec -ti slave bash

    找的my.cnf文件,路径:/etc/mysql/my.cnf,录入下面的信息:

    [mysqld]
    server-id=3308
    log-bin=mysql-bin
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1

    然后继续配置:

    change master to master_host='172.17.0.2',master_user='slave',master_password='slave',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=617,master_connect_retry=30;

    设置完之后需要启动:

    # 启动slave服务
    start slave;

    然后继续执行:

    show slave statusG;

    成功效果:

    效果

    在新建数据库时,主从库效果如下:

    大功告成~

  • 相关阅读:
    集训日记
    各种考试
    树上差分
    树的直径
    讲课
    adb常用命令
    关于appium的简单理解
    使用appium过程中常遇到的坑以及解决方案
    JMeter面试题
    fiddler面试题
  • 原文地址:https://www.cnblogs.com/todarcy/p/14670599.html
Copyright © 2011-2022 走看看