新闻中心

如何在docker环境中快速部署mysql集群

2025-10-15
浏览次数:
返回列表
首先利用Docker Compose编排MySQL主从实例,通过配置文件设置server-id、GTID及二进制日志,确保主从复制基础环境;接着在docker-compose.yml中定义master和sl*e服务,挂载各自配置与数据目录,创建自定义网络实现容器互通;启动容器后,在主库创建复制用户,从库执行CHANGE MASTER命令指向主库并开启复制,通过SHOW SL*E STATUS验证IO和SQL线程正常运行;最后在主库写入数据,从库自动同步,确认复制成功。该方法适用于快速搭建测试环境,核心在于配置隔离、网络连接与GTID一致性,生产环境需增强安全与高可用机制。

如何在docker环境中快速部署mysql集群

在Docker环境中快速部署MySQL集群,核心是利用Docker Compose编排多个MySQL实例,并通过主从复制或组复制(Group Replication)实现高可用。以下是基于MySQL主从架构的实用部署方法,适合开发和测试环境快速搭建。

准备配置文件与目录结构

为每个MySQL节点创建独立的配置和数据目录,确保配置隔离。

示例目录结构:
  • mysql-cluster/
  •   ├── master/
  •   │  ├── my.cnf
  •   │  └── data/
  •   ├── sl*e1/
  •   │  ├── my.cnf
  •   │  └── data/
  •   └── docker-compose.yml

master/my.cnf 配置:

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=row
gtid-mode=ON
enforce-gtid-consistency=true

sl*e1/my.cnf 配置:

[mysqld]
server-id=2
relay-log=relay-bin
log-sl*e-updates=ON
read-only=ON
gtid-mode=ON
enforce-gtid-consistency=true

编写docker-compose.yml

定义主从两个MySQL服务,挂载配置和数据卷,开放端口。

version: '3.8'
services:
  mysql-master:
    image: mysql:8.0
    container_name: mysql-master
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_REPLICATION_USER: repl
      MYSQL_REPLICATION_PASSWORD: replpass
    ports:
      - "3306:3306"
    volumes:
      - ./master/data:/var/lib/mysql
      - ./master/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
      - mysql-net
<p>mysql-sl*e1:
image: mysql:8.0
container_name: mysql-sl*e1
environment:
MYSQL_ROOT_PASSWORD: rootpass
ports:</p><ul><li>"3307:3306"
volumes:</li><li>./sl*e1/data:/var/lib/mysql</li><li>./sl*e1/my.cnf:/etc/mysql/conf.d/my.cnf
depends_on:</li><li>mysql-master
networks:</li><li>mysql-net</li></ul><p>networks:
mysql-net:
driver: bridge</p>

启动并配置主从复制

容器启动后,进入主库创建复制用户,再在从库执行CHANGE MASTER命令。

1. 启动服务:

docker-compose up -d

2. 查看主库状态:

MGX MGX

MetaGPT推出的自然语言编程工具

MGX 163 查看详情 MGX
docker exec -it mysql-master mysql -uroot -p
mysql> SHOW MASTER STATUS\G

3. 在从库配置主从关系:

docker exec -it mysql-sl*e1 mysql -uroot -p
mysql> CHANGE MASTER TO
  MASTER_HOST='mysql-master',
  MASTER_USER='repl',
  MASTER_PASSWORD='replpass',
  MASTER_AUTO_POSITION=1;
mysql> START SL*E;

4. 检查从库复制状态:

mysql> SHOW SL*E STATUS\G
# 确保 Sl*e_IO_Running 和 Sl*e_SQL_Running 都为 Yes

验证数据同步

在主库创建数据库和表,插入数据,查看从库是否自动同步。

mysql> CREATE DATABASE testdb;
mysql> USE testdb;
mysql> CREATE TABLE t1(id INT);
mysql> INSERT INTO t1 VALUES(1);

切换到从库查询:

docker exec -it mysql-sl*e1 mysql -uroot -p -e "SELECT * FROM testdb.t1;"

若能看到插入的数据,说明主从同步成功。

基本上就这些。这种方案适合快速搭建测试用MySQL主从集群。生产环境建议结合监控、故障转移工具(如MHA)和更安全的密钥管理。使用Docker部署的关键是配置分离和网络互通,避免数据丢失注意挂载宿主机目录。不复杂但容易忽略细节,比如server-id唯一性和GTID一致性设置。

以上就是如何在docker环境中快速部署mysql集群的详细内容,更多请关注其它相关文章!


# word  # mysql  # 全攻略  # 多个  # 镜像  # 离线  # 数据丢失  # 配置文件  # ai  # 工具  # 端口  # docker  # 网站建设域名空间  # 产品营销类推广的设计  # seo关键词的定位  # qq音乐seo  # 网站tag页面优化不了  # 新网站如何进行优化排名  # seo优化角度分析  # 北京网站建设设计  # 百度app的营销推广  # 北京电商网站建设团队  # 适用于  # 自然语言  # 操作步骤  # 如何在 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Win10怎么制作U盘启动盘 Win10系统安装U盘制作教程【详解】  浏览器打开即用 美图秀秀网页版入口  J*aScript类型检查_j*ascript代码规范  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  响应式图片在网页设计中的正确实现方法  Golang如何使用const iota_Go iota常量计数器讲解  从J*aScript对象中精确提取指定属性的教程  漫蛙2网页版漫画入口 漫蛙漫画在线官方登录  jQuery Mask 插件中实现电话号码固定前导零的教程  Excel Power Pivot如何处理XML数据源 构建高级数据模型  sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件  Archive of Our Own官网直达 AO3最新可用地址一览  俄罗斯搜索引擎Yandex指南 附2025年免登录官网入口  蛙漫2台版漫画地址 Manwa2正版网页版链接  小米Civi 4录制视频过暗_小米Civi 4亮度优化  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  微博网页版首页入口 微博电脑端官网登录链接  c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧  J*a实现学校排课程序_面向对象结构化项目示例  在J*a中如何开发简易仓库管理与库存统计_仓库管理库存统计项目实战解析  yy漫画网页版官方入口_yy漫画官网登录页面链接  照顾宝贝2小游戏点击立即在线玩  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  外媒分析《GTA6》定价:卖100美元可以但真没必要!  html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】  C++如何实现异步操作_C++11使用std::future和std::async进行异步编程  Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询  如何将HTML表格多行数据保存到Google Sheets  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验  抖音网页版企业服务中心登录入口_抖音网页版企业登录平台  Tabulator表格日期时间排序问题及自定义解决方案  Flexbox布局实践:实现粘性导航栏与底部固定页脚  《噬血代码2》新预告片发布 展示游戏剧情  在J*a中如何开发简易电子商务商品管理系统_商品管理系统项目实战解析  poki网页游戏推荐_poki免费游戏平台入口  C++ vector二维数组定义_C++ vector of vector用法  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏  Typer应用中动态命令行参数的解析与处理  微信客户端如何收红包_微信客户端接收红包使用教程  必由学官方登录入口 必由学教师学生账号快速访问  C++ explicit关键字防止隐式转换_C++构造函数安全规范  谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版  mysql如何设置表访问权限_mysql表访问权限配置  C++ string find函数返回值npos详解_C++字符串查找失败的判断条件  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  J*aScript中高效管理与清空动态列表:避免循环陷阱 

搜索