美文网首页
基于docker的Mysql主从复制容器搭建

基于docker的Mysql主从复制容器搭建

作者: 北冢 | 来源:发表于2020-03-09 00:56 被阅读0次

    前期准备

    1. 安装 docker
    2. 安装 docker-compose 命令。
    3. 推荐本机安装 mycli 命令。语法几近原生,多了补全。
    4. 文章涉及到的 docker-compose.yml 和 Dockerfile 文件可以在 https://github.com/jessun2017/docker-files 的 mysql4dev 目录下找到。

    说明

    简单描述就是 docker-compose 命令可以按照 docker-compose.yml 中的配置来运行两个包含 mysql 服务的容器。之后再单独使用命令来配置从库设置。

    version: "3"
    services:
        mysql_master:
            build:
              context: ./
              dockerfile: master/Dockerfile
            volumes:
                -  "./mysql_master:/var/lib/mysql"
            environment:
                MYSQL_ROOT_PASSWORD: root
            links:
              - mysql_slave
            ports:
                -  "33060:3306"
            restart: always
            hostname: mysql_master
        mysql_slave:
            build:
              context: ./
              dockerfile: slave/Dockerfile
            volumes:
                -  "./mysql_slave:/var/lib/mysql"
            environment:
                MYSQL_ROOT_PASSWORD: root
            ports:
                -  "33061:3306"
            restart: always
            hostname: mysql_slave
    

    两个数据库的 root 用户密码都是 root 。主库的连接地址为:127.0.0.1:33060,从库的连接地址为:127.0.0.1:33061。两个数据库的持久化都会在当前目录下 ./mysql_master./mysql_slave

    步骤

    1. 在 mysql4dev 目录下运行 docker-compose up 启动两个 mysql 容器。
    2. 首先 docker ps 查看一下两个容器的基本情况。
      docker ps 显示结果
    3. 使用 mycli -h 127.0.0.1 -P 33060 -u root 命令来操作主库。输入 show master status; 来确定 binlog 文件名和记录的位置。
      show master status; 显示结果
    4. 使用 mycli -h 127.0.0.1 -P 33061 -u root 命令来操作从库。输入 CHANGE MASTER TO MASTER_HOST='mysql_master',MASTER_USER='root',MASTER_PASSWORD='root',MASTER_LOG_FILE='replicas-mysql-bin.000005',MASTER_LOG_POS=154;
    5. 继续 stop slave;start slave 来启动从库的复制功能。
    6. 使用 show slave status; ,如果显示如下,表示主从设置已经成功。
      [图片上传失败...(image-36b34f-1583686594141)]
    7. 这里有个注意点,如果 show slave status; 中显示了 error,就需要重新从步骤3开始操作,重新同步。否则复制功能就会停滞。

    相关文章

      网友评论

          本文标题:基于docker的Mysql主从复制容器搭建

          本文链接:https://www.haomeiwen.com/subject/tebsdhtx.html