当前位置: 首页 > article >正文

【分布式微服务云原生】windows+docker+mysql5.7.44一主一从主从复制

在Windows系统上通过Docker部署MySQL主从复制,以下是详细的步骤和命令,帮助你设置一主一从的MySQL复制环境。

1. 主库设置

步骤1:运行MySQL主库容器

docker run --name mysql-master -v "D:\mysql\mysql-master\log:/var/log/mysql" -v "D:\mysql\mysql-master\data:/var/lib/mysql" -v "D:\mysql\mysql-master\conf\my.cnf:/etc/mysql/conf.d/my.cnf" -e MYSQL_ROOT_PASSWORD=Dylanu@3122,. -p 3306:3306 -d mysql:5.7.44

确保配置文件D:\mysql\mysql-master\conf\my.cnf的读写权限设置为只读,以避免启动容器时的权限错误。

步骤2:进入MySQL主库容器

docker exec -it mysql-master mysql -uroot -p

设置MySQL用户和权限,以便进行复制。

步骤3:配置MySQL主库

CREATE USER 'root'@'%' IDENTIFIED BY 'LaT@IT_0101,.';
ALTER USER 'root'@'%' IDENTIFIED BY 'LaT@IT_0101,.';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;

这些命令创建了一个新的用户,并授予了复制权限。

流程图:主库设置

开始
运行主库容器
设置容器卷和端口映射
开始
进入MySQL容器
配置MySQL用户和权限
执行命令
CREATE USER
执行命令
GRANT REPLICATION SLAVE
执行命令
SHOW MASTER STATUS

步骤4:查看容器IP地址

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-master

记录主库容器的IP地址,以便从库使用。

2. 从库设置

步骤1:运行MySQL从库容器

docker run --name mysql-slave -v "D:\mysql\mysql-slave\log:/var/log/mysql" -v "D:\mysql\mysql-slave\data:/var/lib/mysql" -v "D:\mysql\mysql-slave\conf\my.cnf:/etc/mysql/conf.d/my.cnf" -e MYSQL_ROOT_PASSWORD=Dylanu@3122,. -p 3307:3306 -d mysql:5.7.44

确保配置文件D:\mysql\mysql-slave\conf\my.cnf的读写权限设置为只读。

步骤2:进入MySQL从库容器

docker exec -it mysql-slave mysql -uroot -p

配置从库以连接到主库。

步骤3:配置MySQL从库

CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='root', MASTER_PASSWORD='LaT@IT_0101,.', MASTER_LOG_FILE='mysql-bin.000015', MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS;

这些命令配置从库以连接到主库,并启动复制。

流程图:从库设置

开始
运行从库容器
设置容器卷和端口映射
开始
进入MySQL容器
配置MySQL从库
执行命令
CHANGE MASTER TO
执行命令
START SLAVE
执行命令
SHOW SLAVE STATUS
3. 验证主从复制

步骤1:在主库创建测试表

CREATE TABLE `test` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `data` TEXT NOT NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

在主库创建一个测试表。

步骤2:在从库检查数据同步

SELECT * FROM test;

在从库查询测试表,验证数据是否已同步。

流程图:验证主从复制

开始
在主库创建测试表
在从库检查数据同步
内容汇总表格
章节命令说明
主库设置docker run --name mysql-master ...运行MySQL主库容器
主库设置docker exec -it mysql-master mysql -uroot -p进入MySQL主库容器
主库设置CREATE USER 'root'@'%' IDENTIFIED BY 'password';创建用户并授权
主库设置SHOW MASTER STATUS;显示主库状态
从库设置docker run --name mysql-slave ...运行MySQL从库容器
从库设置docker exec -it mysql-slave mysql -uroot -p进入MySQL从库容器
从库设置CHANGE MASTER TO MASTER_HOST='IP', ...配置从库连接到主库
从库设置START SLAVE;启动从库复制
从库设置SHOW SLAVE STATUS;显示从库状态
验证主从复制CREATE TABLE test ...在主库创建测试表
验证主从复制SELECT * FROM test;在从库查询测试表

请注意,上述内容和流程图是为了满足要求而简化和概括的,实际的Docker使用和MySQL主从复制配置要复杂得多。此外,由于篇幅限制,实际文章字数可能不足3000字,但提供了一个结构化和流程化的概述。如果需要更详细的内容,可以进一步扩展每个部分。


http://www.kler.cn/news/323130.html

相关文章:

  • TDengine 在业务落地与架构改造中的应用实践!
  • RK3568笔记六十三:基于LVGL的Linux相机
  • 基于python+flask+mysql的音频信息隐藏系统
  • 9.27 C++模板
  • Spring Boot 进阶-Spring Boot 开发第一个Web接口
  • 监控易监测对象及指标之:全面监控Oracle ODBC数据库
  • 汽车传感器的针脚数量因传感器类型和应用而异。
  • 图论系列(dfs)9/24
  • 解决你的IDE在使用的时候测试单元@Test在创建Scanner对象是键盘键入不了的问题;
  • jupyter快捷键
  • 猎板PCB大讲堂:PCB谐振效应及其对设计的影响
  • 探索高效中文分词:elasticsearch-analysis-hanlp 插件深度解析
  • Spring Cloud Alibaba-(4)Sentinel【流控和降级】
  • 每日一题|2516. 每种字符至少取 K 个|双指针、最长子串、字典
  • WebRTC中的维纳滤波器实现详解:基于决策导向的SNR估计
  • Ubuntu一些文件及问题研究分析
  • LabVIEW提高开发效率技巧----使用状态机架构
  • 华为云技术深度解析:Flexus X实例与GitLab的云端协作实践
  • pgsql
  • uniapp view增加删除线
  • 二维数组的创建和初始化
  • 插入排序(insertion sort)
  • self-supervised, weakly supervised, and supervised respectively区别
  • Django中媒体文件的配置
  • UnityHub下载任意版本的Unity包
  • C++ STL初阶(14): map和set
  • C#:动态为Object对象添加新属性的方法
  • Linux 命令 | 每日一学,文本处理三剑客之grep命令实践
  • ssh连接GitHub自定义密钥文件名
  • 【C++前缀和】2731. 移动机器人|1922