mysql 主从docker-compose 配置

version: '3'
services:
  # 主从mysql配置
  mysql-master:
    image: mysql:8.0.24
    restart: always
    container_name: mysql-master
    environment:
      MYSQL_ROOT_PASSWORD: "root"
    command: [
      '--default-authentication-plugin=mysql_native_password',
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_general_ci',
      '--explicit_defaults_for_timestamp=true',
      '--lower_case_table_names=1',
      '--max_allowed_packet=128M',
      '--server-id=1',
      '--log-bin=xbd-master-bin',
      '--binlog-ignore-db=mysql',
      '--binlog_cache_size=256M',
      '--binlog_format=mixed',
      '--lower_case_table_names=1',
      '--character-set-server=utf8',
      '--collation-server=utf8_general_ci',
      '--sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION']
    ports:
      - "3306:3306"
    volumes:
      - ./data/master:/var/lib/mysql #数据
      - ./conf/master:/etc/mysql/conf.d #配置
      - ./logs/master:/data/mysql/logs #日志
    networks:
      - mysql_default
  mysql-slaver:
    image: mysql:8.0.24
    restart: always
    container_name: mysql-slaver
    volumes:
      - /var/lib/mysql/xbd-slaver:/var/lib/mysql
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "root"
    privileged: true
    # change master to master_host='mysql-master', master_user='root',master_password='root',master_port=3306;
    # start slave;
    command: [
              '--default-authentication-plugin=mysql_native_password',
              '--character-set-server=utf8mb4',
              '--collation-server=utf8mb4_general_ci',
              '--explicit_defaults_for_timestamp=true',
              '--lower_case_table_names=1',
              '--max_allowed_packet=128M',
              '--server-id=2',
              '--relay_log=xbd-slaver-relay',
              '--lower_case_table_names=1',
              '--character-set-server=utf8',
              '--collation-server=utf8_general_ci',
              '--sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION']
    volumes:
      - ./data/slaver:/var/lib/mysql #数据
      - ./conf/slaver:/etc/mysql/conf.d #配置
      - ./logs/slaver:/data/mysql/logs #日志
    networks:
      - mysql_default
networks:
  mysql_default:
    external: true

 

posted @ 2022-12-15 20:15  浅笑19  阅读(193)  评论(1编辑  收藏  举报