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