Docker swarm 配置 mysql 主从

1,445 阅读2分钟

Docker swarm 配置 mysql 主从

一创建服务器挂在目录

mkdir -pv /data/docker/composes/prod/middleware/mysql/master/{conf,data};
mkdir -pv /data/docker/composes/prod/middleware/mysql/slave/{conf,data};
touch  /data/docker/composes/prod/middleware/mysql/master/conf/my.cnf
touch  /data/docker/composes/prod/middleware/mysql/slave/conf/my.cnf

二mysql .yml

version: '3'
services:
      
  mysql_master:
    image: 10.11.32.23:5000/mysql:v5.7
    ports:
      - 3310:3306
    networks:
      #指定容器加入的网络
      - GIE-ECP-overlay-network
    environment:
      #最好使用此设定时区,其它静像也可以使用
      - TZ=CST-8
      #指定mysql的访问密码
      - MYSQL_ROOT_PASSWORD=123456
    #可以加--default-time-zone='+8:00'设定时区
    volumes:
      - /data/docker/composes/prod/middleware/mysql/master/data:/var/lib/mysql
      - /data/docker/composes/prod/middleware/mysql/master/conf/my.cnf:/etc/mysql/my.cnf
      - /data/docker/composes/prod/middleware/mysql/master/logs/:/var/log/mysql 
    command: --character-set-server=utf8 
             --collation-server=utf8_general_ci
             --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    deploy:
      placement:
        constraints:
          #该hostname为指定容器在哪个主机启动
          - node.hostname == GIE-EC-Node04
 
#mysql2服务
  mysql_slave:
    image: 10.11.32.23:5000/mysql:v5.7
    ports:
      - 3311:3306
    networks:
      #指定容器加入的网络
      - GIE-ECP-overlay-network
    environment:
      #最好使用此设定时区,其它静像也可以使用
      - TZ=CST-8
      #指定mysql的访问密码
      - MYSQL_ROOT_PASSWORD=123456
    #可以加--default-time-zone='+8:00'设定时区
    volumes:
      - /data/docker/composes/prod/middleware/mysql/slave/data:/var/lib/mysql
      - /data/docker/composes/prod/middleware/mysql/slave/conf/my.cnf:/etc/mysql/my.cnf
      - /data/docker/composes/prod/middleware/mysql/slave/logs/:/var/log/mysql 
    command: --character-set-server=utf8 
             --collation-server=utf8_general_ci
             --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    deploy:
        placement:
          constraints:
            #该hostname为指定容器在哪个主机启动
            - node.hostname == GIE-EC-Node05
 
 
​
​
networks:
  GIE-ECP-overlay-network:
    external: true

三配置文件

位置 /data/docker/composes/prod/middleware/mysql/master/conf/my.cnf

主库

[mysqld]
server_id=1
log-bin=mysql-bin
​
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
​
read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=1
auto-increment-increment=2
​
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

位置 /data/docker/composes/prod/middleware/mysql/slave/conf/my.cnf

从库

[mysqld]
server_id=2
log-bin=mysql-bin
​
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
​
read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=2
auto-increment-increment=2
​
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

附录

www.cnblogs.com/bigberg/p/8… 主从 www.cnblogs.com/zhoujie/p/m… 同步已有的数据到从库