Docker —— MySQL主从复制集群

架构图

+-------------------+ +--------------------+ +--------------------+

| | | | | |

| MySQL Master |--------------------------| MySQL Slave 1 |--------------------------| MySQL Slave 2 |

| IP: 172.18.0.10 | | IP: 172.18.0.11 | | IP: 172.18.0.12 |

| Port: 3306 | | Port: 3306 | | Port: 3306 |

| Data Dir: /data/mysql/master | Data Dir: /data/mysql/slave1 | Data Dir: /data/mysql/slave2 |

+-------------------+ +--------------------+ +--------------------+

配置文件复制

启动临时 MySQL 容器用于提取配置文件

我们先启动一个临时的 MySQL 容器,用于从中拷贝默认配置文件:

复制代码
docker run -d --name mysql-temp mysql:8.0

等待几秒后,执行以下命令将配置文件复制到本地:

复制代码
mkdir -p /data/mysql/conf
​
docker cp mysql-temp:/etc/my.cnf /data/mysql/conf/my.cnf

停止并删除临时容器:

复制代码
docker stop mysql-temp && docker rm mysql-temp

创建主从节点的目录结构

复制代码
mkdir -p /data/mysql/{master,slave1,slave2}/{conf,data}

将配置文件分别复制到对应的目录中:

复制代码
cp /data/mysql/conf/my.cnf /data/mysql/master/conf/
cp /data/mysql/conf/my.cnf  /data/mysql/slave1/conf/
cp /data/mysql/conf/my.cnf  /data/mysql/slave2/conf/
相关推荐
duansamve8 小时前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
mengge.cloud10 小时前
prometheus+k8s+弹性伸缩,综合项目
云原生·容器·kubernetes·prometheus
星恒随风10 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Pniubi12 小时前
MySQL靠什么实现事务的?事务隔离级别有哪些?
java·数据库·mysql
aiks_yuan13 小时前
MySQL 死锁怎么排查:看懂 INNODB STATUS 死锁日志,先查后插为什么必死锁(MySQL 8.2 实测)
mysql
xbzb14 小时前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
那明眸似水15 小时前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
腾飞开源15 小时前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
进击的荆棘16 小时前
MySQL——库的操作
数据库·mysql
计算机毕设定制辅导-无忧学长16 小时前
《基于Spring Boot的迷游哈游戏综合服务平台的开发》
java·vue.js·spring boot·mysql·迷游哈游戏综合服务平台