You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于已创建的Docker容器配置MariaDB复制的技术咨询

基于已创建的Docker容器配置MariaDB复制的技术咨询

为了搞明白MariaDB的复制原理,我搭建了三个Docker容器作为测试环境,创建命令如下:

# 节点1(server_id=1)
docker run -e TZ=America/Denver --name mariadb1 --network=camino_nw \
  -e MARIADB_SERVER_ID=1 -e MARIADB_LOG_BIN=mysql-bin -e MARIADB_LOG_BASENAME=mariadb1 \
  -e MARIADB_BINLOG_FORMAT=mixed -p 127.0.0.1:53301:3306 \
  -v /home/jcz/Documents/dockerMariadbData1:/var/lib/mysql:z \
  -e MARIADB_ROOT_PASSWORD=S3cretPw -d mariadb:latest

# 节点2(server_id=2)
docker run -e TZ=America/Denver --name mariadb2 --network=camino_nw \
  -e MARIADB_SERVER_ID=2 -e MARIADB_LOG_BIN=mysql-bin -e MARIADB_LOG_BASENAME=mariadb2 \
  -e MARIADB_BINLOG_FORMAT=mixed -p 127.0.0.1:53302:3306 \
  -v /home/jcz/Documents/dockerMariadbData2:/var/lib/mysql:z \
  -e MARIADB_ROOT_PASSWORD=S3cretPw -d mariadb:latest

# 节点3(server_id=3)
docker run -e TZ=America/Denver --name mariadb3 --network=camino_nw \
  -e MARIADB_SERVER_ID=3 -e MARIADB_LOG_BIN=mysql-bin -e MARIADB_LOG_BASENAME=mariadb3 \
  -e MARIADB_BINLOG_FORMAT=mixed -p 127.0.0.1:53303:3306 \
  -v /home/jcz/Documents/dockerMariadbData3:/var/lib/mysql:z \
  -e MARIADB_ROOT_PASSWORD=S3cretPw -d mariadb:latest

每个容器的核心配置说明:

  • 统一加入自定义网络camino_nw,确保容器间可直接通信
  • 每个节点配置唯一的server_id(1/2/3),这是MariaDB复制的必填标识
  • 开启二进制日志并指定日志基名,设置mixed格式的binlog以兼顾复制兼容性和性能
  • 映射到本地不同端口(53301/53302/53303),方便本地直接访问不同节点
  • 挂载本地目录作为数据卷,持久化存储数据库数据
  • 统一设置root密码为S3cretPw

现在我希望基于这三个已创建的容器,完成MariaDB复制集群的配置(比如一主两从或多主复制模式),求具体的配置步骤指导。

备注:内容来源于stack exchange,提问作者Jose Cabrera Zuniga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:13:06