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

火山引擎 最新活动