news 2026/4/16 9:23:25

Docker Compose 实战:5 分钟搭一套 MySQL 主从集群

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker Compose 实战:5 分钟搭一套 MySQL 主从集群

在真实生产环境中,数据库绝不能只有一份。 哪怕你还没上 K8s,也应该至少有:

1 主 + 1 从 = 数据安全 + 读写分离

而 Docker Compose,正是最快落地 MySQL 主从的利器。


一、整体架构

我们要搭建的是经典 MySQL 主从架构:

二、准备目录结构

mysql-cluster/ ├── docker-compose.yml ├── master/ │ └── my.cnf └── slave/ └── my.cnf

三、Master 配置

master/my.cnf

[mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW

四、Slave 配置

slave/my.cnf

[mysqld] server-id=2 relay-log=mysql-relay-bin read-only=1

五、docker-compose.yml

version: "3.8" services: mysql-master: image:mysql:8.0 container_name:mysql-master restart:always environment: MYSQL_ROOT_PASSWORD:root volumes: -./master/my.cnf:/etc/mysql/conf.d/my.cnf -master-data:/var/lib/mysql ports: -"3306:3306" mysql-slave: image:mysql:8.0 container_name:mysql-slave restart:always environment: MYSQL_ROOT_PASSWORD:root volumes: -./slave/my.cnf:/etc/mysql/conf.d/my.cnf -slave-data:/var/lib/mysql ports: -"3307:3306" depends_on: -mysql-master volumes: master-data: slave-data:

六、一条命令启动

docker compose up -d 查看: docker compose ps

七、在 Master 上创建复制账号

​ ​ docker exec -it mysql-master mysql -uroot -proot CREATE USER 'repl'@'%' IDENTIFIED BY 'repl123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; 查看 binlog: SHOW MASTER STATUS; 记住: File: mysql-bin.000001 Position: 1234 ​ ​

八、在 Slave 上配置同步

docker exec -it mysql-slave mysql -uroot -proot CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_USER='repl', MASTER_PASSWORD='repl123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234; START SLAVE; 检查状态: SHOW SLAVE STATUS\G; 看到: Slave_IO_Running: Yes Slave_SQL_Running: Yes 说明主从同步成功 🎉

九、测试同步

在 master: CREATE DATABASE testdb; USE testdb; CREATE TABLE t1(id INT); INSERT INTO t1 VALUES(1); 在 slave: SELECT * FROM testdb.t1; 能看到 1,说明复制已生效。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:23:20

Wiki.js主题定制终极指南:打造个性化知识库的5大实用技巧

Wiki.js主题定制终极指南:打造个性化知识库的5大实用技巧 【免费下载链接】wiki- Wiki.js | A modern and powerful wiki app built on Node.js 项目地址: https://gitcode.com/GitHub_Trending/wiki78/wiki- 还在为知识库界面千篇一律而烦恼?想要…

作者头像 李华
网站建设 2026/4/15 15:24:33

如何高效转换中文数字与单位?试试FST ITN-ZH大模型镜像

如何高效转换中文数字与单位?试试FST ITN-ZH大模型镜像 在日常开发和数据处理中,我们经常遇到这样的问题:用户输入的文本里夹杂着各种中文数字、时间、金额表达,比如“二零二四年三月十五日”、“一百五十块”、“早上八点半”。…

作者头像 李华
网站建设 2026/4/15 3:40:16

DeepSeek-R1开源:免费体验强化学习推理新引擎

DeepSeek-R1开源:免费体验强化学习推理新引擎 【免费下载链接】DeepSeek-R1 探索新一代推理模型,DeepSeek-R1系列以大规模强化学习为基础,实现自主推理,表现卓越,推理行为强大且独特。开源共享,助力研究社区…

作者头像 李华
网站建设 2026/4/12 9:10:02

2025年CRM客户管理系统TOP 6推荐榜单

2025 年 CRM 客户管理系统 TOP 6 推荐榜单一、引言:国产 CRM 的 “价值重构” 时代当中小企业数字化转型从 “尝鲜” 进入 “深用” 阶段,CRM 系统的核心价值已从 “客户信息存储” 迭代为 “业务效能引擎”。据 2025 年国产 CRM 市场白皮书显示&#xf…

作者头像 李华
网站建设 2026/4/7 17:20:50

想让App开机自启?先搞懂这个shell脚本原理(实测)

想让App开机自启?先搞懂这个shell脚本原理(实测) 在Android系统开发中,实现某个功能或服务的开机自启动是一个常见需求。比如你希望某个后台服务自动拉起、某个配置文件在系统启动时被写入,或者你的应用需要在系统就绪…

作者头像 李华
网站建设 2026/4/14 0:36:11

FunASR多说话人语音识别终极指南:从理论到企业级部署

FunASR多说话人语音识别终极指南:从理论到企业级部署 【免费下载链接】FunASR A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing et…

作者头像 李华