zoukankan      html  css  js  c++  java
  • Docker搭建分布式MySQL主从服务

    一. 创建docker-compose.yml并启动docker compose

    mkdir mysql_server
    cd mysql_server
    sudo vim docker-compose.yml
    

    docker-compose.yml

    version: "3" #版本信息
    services: #服务列表
      mysql_1:
        image: mysql:5.7
        ports:
          - 3306:3306
        volumes:
          - "/root/mysql_server/node1/data:/var/lib/mysql"
          - "/root/mysql_server/node1/conf.d:/etc/mysql/conf.d"
        environment:
          - MYSQL_ROOT_PASSWORD=123456
        restart: always
      mysql_2:
        image: mysql:5.7
        ports:
          - 3307:3306
        volumes:
          - "/root/mysql_server/node2/data:/var/lib/mysql"
          - "/root/mysql_server/node2/conf.d:/etc/mysql/conf.d"
        environment:
          - MYSQL_ROOT_PASSWORD=123456
      restart: always
      mysql_3:
        image: mysql:5.7
        ports:
          - 3308:3306
        volumes:
          - "/root/mysql_server/node3/data:/var/lib/mysql"
          - "/root/mysql_server/node3/conf.d:/etc/mysql/conf.d"
        environment:
          - MYSQL_ROOT_PASSWORD=123456
      restart: always
    

    启动:

    sudo docker-compose up

    查看启动的端口:

    netstat -lntp

    二、MySQL主从配置

    由于docker容器中没有vim  首先apt-get update,然后安装vim

    1. docker exec -it   进入mysql镜像,修改配置文件

    进入node1,在/etc/mysql/mysql.conf.d/mysqld.cnf 中添加:

    server-id=100

    log-bin=mysql-bin

     

    进入node2,在/etc/mysql/mysql.conf.d/mysqld.cnf中添加:

    server-id=101

    log-bin=mysql-slave-bin

     

    进入node3,在/etc/mysql/mysql.conf.d/mysqld.cnf 中添加:

    server-id=102

    log-bin=mysql-slave-bin

     

    2. 进入到主库,查看status:

    show master status;

    3. 查看master的docker内网ip

    sudo docker inspect  mysql_server_mysql_1_1

     

    4. 从库执行同步SQL语句:

    CHANGE MASTER TO 

    MASTER_HOST='172.18.0.4',

    MASTER_USER='root',

    MASTER_PASSWORD='123456',

    MASTER_LOG_FILE='mysql-bin.000003', 

    MASTER_LOG_POS=154;

     

    如果出现问题:

    stop slave;

    SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;

    5. 启动slave同步进程

    start slave;

     

    6. 查看slave状态:

    show slave statusG

    主从配置成功后主库数据新增、修改、删除会同步到从库

  • 相关阅读:
    项目分析时找不到函数调用只有16进制数
    firebase消息推送配置
    布局错乱到原点的问题
    人脸识别部分文章地址笔记
    查看奔溃分析
    iOS App 后台任务的坑(奔溃原因分析)
    轨迹优化
    X SqlServer 事务日志传输 【将备份目录设置到辅助服务器】
    X sql server2014 发布与订阅的配置方法介绍包括【推送订阅】与【请求订阅】
    X SQL SERVER 使用订阅发布同步数据库 【推送订阅】
  • 原文地址:https://www.cnblogs.com/FG123/p/12702092.html
Copyright © 2011-2022 走看看