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

docker 实现mysql主从同步

docker 实现mysql主从同步

创建主服务器容器

以mysql5.7为例

docker pull mysql:5.7 #拉取mysql5.7镜像 ​ docker run -p 3307:3306 --name mysql1-master \ -v /mydata/mysql1-master/log:/var/log/mysql \ -v /mydata/mysql1-master/data:/var/lib/mysql \ -v /mydata/mysql1-master/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7 #创建容器名为mysql1-master 映射端口为3307 本地为3306 的容器 ​ docker exec -it mysql1-master /bin/bash #进入容器 ​ mysql -uroot -p #进入mysql1-master 密码是root ​ #在主库创建同步账户slave: CREATE USER 'slave2'@'%' IDENTIFIED BY '123456'; #添加账户权限: GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; #刷新权限 FLUSH PRIVILEGES; ​

创建从服务器容器

docker run -p 3308:3306 --name mysql1-slave \ -v /mydata/mysql1-slave/log:/var/log/mysql \ -v /mydata/mysql1-slave/data:/var/lib/mysql \ -v /mydata/mysql1-slave/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7 #创建从服务器 docker run -p 3309:3306 --name mysql1-slave2 \ -v /mydata/mysql1-slave2/log:/var/log/mysql \ -v /mydata/mysql1-slave2/data:/var/lib/mysql \ -v /mydata/mysql1-slave2/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7 docker run -p 3310:3306 --name mysql1-slave3 \ -v /mydata/mysql1-slave3/log:/var/log/mysql \ -v /mydata/mysql1-slave3/data:/var/lib/mysql \ -v /mydata/mysql1-slave3/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7

从服务器的配置文件如下(在/mydata/mysql1-slave/conf下,没有就 vim /mydata/mysql1-slave/conf/my.cnf)

[mysqld] ## 设置server_id,同一局域网中需要唯一,如果有多个slave库,请保证该id不同 server_id=2 ## 指定不需要同步的数据库名称 binlog-ignore-db=mysql ## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用 log-bin=mall-mysql-slave1-bin ## 设置二进制日志使用内存大小(事务) binlog_cache_size=1M ## 设置使用的二进制日志格式(mixed,statement,row) binlog_format=mixed ## 二进制日志过期清理时间。默认值为0,表示不自动清理。 expire_logs_days=7 ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。 ## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致 slave_skip_errors=1062 ## relay_log配置中继日志 relay_log=mall-mysql-relay-bin ## log_slave_updates表示slave将复制事件写进自己的二进制日志 log_slave_updates=1 ## slave设置为只读(具有super权限的用户除外) read_only=1

修改完配置后重启slave实例 docker restart <容器实例名>

配置多个从服务器时,建议在相应的配置稳健性下写一个配置文件

vim /mydata/mysql1-slave2/cnf/server_id.cnf [mysqld] server-id = 2 #此处server-id与上面的my.cnf里的server_id相对应

在master 中查看同步状态

position 那一栏相当于从库连接主库的一个验证码,会随时间变动,建议配置slave中主从配置时,先查看msater中的同步状态

show master status; mysql> show master status \G *************************** 1. row *************************** File: mall-mysql-bin.000001 Position: 10747 Binlog_Do_DB: Binlog_Ignore_DB: mysql Executed_Gtid_Set: 1 row in set (0.00 sec) mysql>

在slave中配置主从复制

mysql> change master to master_host='192.168.75.134', master_user='slave',master_password='123456',master_port=3307, master_log_file='mall-mysql-bin.000001',master_log_pos=769,master_connect_retry=30; ​ ​ ​ #master_host master主机地址 #master_user 主从连接的用户名 #master_password 主从连接的密码 #master_host master的端口 #master_log_file master的bin-log文件 #master_log_pos master数据同步的位置

这一整段中没有回车

show slave status \G; #查看 #重点查看Slave_IO_Running Slave_SQL_Running 是否都是YES

此时可以在主库建库建表,在从库查看是否同步

http://www.rkmt.cn/news/1407870.html

相关文章:

  • cka考证学习记录-k8s学习(一)-docker容器常用选项、命令、容器数据持久化
  • 交大思诺全资控股北交信通,一场28亿元的轨交“系统集成”深潜
  • 5G微电网能源管理:联合负载控制与能源共享优化策略解析
  • Keil C51编译器版本降级实战指南
  • 从‘人骑自行车’到‘人喂斑马’:HICO-DET 600类交互行为全解析与可视化探索
  • ChatGPT商业模式画布深度解析(含2024最新合规红线与变现阈值数据)
  • 【ChatGPT知乎回答优化黄金法则】:20年AI内容专家亲授3大提效公式,92%用户点击率提升实测
  • Windows系统jscript9.dll文件丢失找不到问题解决
  • 基于流式架构与Gemini API的实时语音填表系统设计与实践
  • 2026年 消化内镜清洗消毒设备/二氧化碳送气泵/高频电刀/送水装置等内镜配套设备与耗材厂家推荐榜单:专业医疗品牌深度解析及选购指南 - 品牌企业推荐师(官方)
  • 2026 年主流短信供应商对比 - 资讯纵览
  • 深入理解 RAG 技术原理:检索生成
  • Obsidian系列2:安装Obsidian(胎教级安装步骤)
  • 2026学生降AI率平台盘点:省时省力+高分适配哪家强?
  • 小红书改版后发布按钮抓不到?两个思路绕开Shadow DOM限制
  • 2026年值得推荐的原装进口艺术漆榜单:意大利石灰基、矿物、灰泥艺术涂料与德系精工谁更强? - 资讯纵览
  • 2026年5月知网AI率突然飙升?4款降AI软件深度推荐+实测 - 我要发一区
  • Canopy:基于Electron的AI编程代理管理桌面应用,重塑多分支开发工作流
  • 从理论到实践:基于ROS与最小二乘法的六维力传感器静态标定全解析
  • 一小时构建简历MCP服务器:基于Node.js与MCP协议的AI应用开发实战
  • 多核程序性能瓶颈诊断:从锁竞争到缓存失效的七类问题与优化实践
  • 【ChatGPT产品描述生成黄金公式】:20年AI商业化专家亲授——3步写出高转化率文案,92%客户点击率提升实测
  • 2026 全球 AI 工厂市场格局与发展趋势
  • 别再死磕公式了!用COMSOL Multiphysics 6.1的‘相变材料’功能,10分钟搞定固液相变仿真
  • 从CMS内卷到ZGC封神!深度拆解GC分代模型与三大收集器优缺点+生产调优实战
  • 【实战指南】基于MATLAB GUI的指纹识别系统:从图像预处理到特征匹配全流程解析
  • 告别手动cd!手把手教你给Windows右键菜单添加专属的MSYS2 MinGW终端入口
  • EPLAN正版与盗版同时运行被锁网?如何在不中断设计进度下合规化
  • 经济下行压力大,EB-Cable的license费用怎么砍?我这儿有几招狠的
  • 【DBC实战】-CAN信号多路复用(Multiplexor)的工程配置与信号分组策略