• docker的mysql8镜像主从复制搭建过程记录


    mysql

    # 版本 mysql:8.0.28
    # mysql文件绑定挂载,使用系统的/Users/jaylen/var/lib/mysql 目录
    # 配置文件挂载到docker volume
    docker run --name mysql-master -v /Users/jaylen/var/lib/mysql:/var/lib/mysql -v mysql-master-home:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -dp 3306:3306 mysql:8.0.28
    
    # slaver
    docker run --name mysql-slaver -v /Users/jaylen/var/lib/mysql-slaver:/var/lib/mysql -v mysql-slaver-home:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -dp 3316:3306  mysql:8.0.28
    

    复制

    用mysql的docker镜像一主一从配置:

    假设已经安装了俩mysql8:mysql-master和mysql-slaver,端口分别为3306,3316。如下是配置步骤:

    serverid配置:在mysql配置文件:conf.d中配置,也可以设置全局变量。

    1. Mysql.cnf配置
      master上:(server-id默认是1,递增的整型,可以不配)
      [mysqld]
      log-bin=mysql-bin
      server-id=1
      slaver上:
      [mysqld]
      log-bin=mysql-bin
      server-id=2

    2. 配置一个复制权限的用户,专门用来复制bin log
      CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
      GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'%';
      ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'slave'; // 改为内置的密码认证方式,否则后面配置同步数据时密码需要填加密后的
      FLUSH PRIVILEGES;

    3. master数据库加锁,防止操作过程中有数据变动。历史数据迁移:手动导出master数据库dump到slaver。(步骤省略)

    4. master上查看状态
      show master status;
      得到file和position的值,下面设置时需要。

    5. slaver上认主
      CHANGE MASTER TO
      master_host = '172.17.0.2',
      master_port = 3306,
      master_log_file = 'mysql-bin.000002', // master status 里的 file
      master_log_pos = 5153, // master status 里的position 从这里开始复制
      master_user = 'slave',
      master_password = 'slave';
      这里端口就是docker暴露出来的端口,但是host需要查看一下。
      docker inspect containerID|containerName; // 找到容器对应的地方写着ip
      或者执行下面这句,得到ip
      docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名或id 查看master的ip(docker内容器的ip)

    6. slaver开启及其他操作
      start slave; // 开启主从复制
      stop slave; // stop
      reset slave; // 停下后重置,完了可以重新设置 第五步(change master to)
      show slave status; // 查看slaver状态

  • 相关阅读:
    [五、交互操作]3添加长按手势
    [五、交互操作]5添加拖动手势
    [四、动画相关]19使用VideoPlayer播放视频素材
    [五、交互操作]4添加旋转手势
    [五、交互操作]7给一个视图添加序列手势
    [四、动画相关]20使用matchedGeometryEffect创建视图过渡动画
    [五、交互操作]2添加双击手势
    [四、动画相关]17利用动画的延迟特性完成序列动画的制作
    鉴权 5 兄弟:cookie、session、token、jwt、单点登录,终于有人说清楚了!
    一款神仙接私活儿项目,已开源,真香!
  • 原文地址:https://www.cnblogs.com/shengjm/p/16087516.html
Copyright © 2020-2023  润新知