 Docker搭建MySQL双主架构
Docker搭建MySQL双主架构
  # Docker搭建MySQL双主架构
这里演示本地环境使用Docker Compose搭建MySQL双主一从环境。
说明:
- 这里仅作为实验进行快速搭建,实际生产会有所不同。
- MySQL主从架构搭建完成的基础上,增加一个主库,实现双写(实际建议单写)
- 为了测试效果,两个master采用自增主键设置
- master1,auto_increment_offset=1,auto_increment_increment=2
- Master2,auto_increment_offset=2,auto_increment_increment=2
 
- 关于开启并行复制、relay log等等配置,这里不再赘述。
- 双主架构其实是增加多一个主库,然后互为slave,配置过程slave与主从基本相似,这里不再赘述,参考主从架构搭建即可。
创建mysql_mm文件夹,docker-compose.yml配置如下:
version: '3.1'
services:
  mysql-master2:
    restart: always
    image: mysql:5.7.28
    container_name: mysql-master2
    ports:
      - 33081:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
      --log-bin=mysqlbinlog
      --binlog-format=ROW
      --server-id=3
      --sync_binlog=1
      --binlog-ignore-db=information_schema
      --binlog-ignore-db=performance_schema
      --binlog-ignore-db=sys
      --binlog_group_commit_sync_delay=1000
      --binlog_group_commit_sync_no_delay_count=100
      --auto_increment_offset=2
      --auto_increment_increment=2
      --relay_log=mysql-relay-bin
      --read_only=1
      --slave_parallel_type=LOGICAL_CLOCK
      --slave_parallel_workers=8
      --relay_log_recovery=1
      --relay_log_info_repository=TABLE
    volumes:
      - /Users/wenwl/docker/mysql_mm/m2conf:/etc/mysql
      - /Users/wenwl/docker/mysql_mm/m2logs:/var/log/mysql 
      - /Users/wenwl/docker/mysql_mm/m2data:/var/lib/mysql
上次更新: 5/30/2023, 11:09:19 PM
