docker容器配置mysql5.7主从复制

介绍

本文将通过docker创建3个mysql数据库容器,实现数据库主从复制功能,三个数据库容器分别为主库mysql-master:3307,从库mysql-slave-01:3308,mysql-slave-02:3309。使用的是mysql5.7版本

1. 拉取mongo镜像
docker pull mysql:5.7
2. 创建容器并配置启动
  1. 创建主数据库容器mysql-master
docker run -p 3307:3306 --name mysql-master -v /home/lingxl/docker-data/mysql/mysql-master/log:/var/log/mysql -v /home/lingxl/docker-data/mysql/mysql-master/data:/var/lib/mysql -v /home/lingxl/docker-data/mysql/mysql-master/conf:/etc/mysql/conf.d --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  1. 编写配置文件,在路径/home/lingxl/docker-data/mysql/mysql-master/conf下创建my.cnf文件,路径为上边配置的数据卷路径。
    内容如下:
[mysqld]
##置server_id, 同一局域网中需要唯一
server_id=101
##定不需要同步的数据库名称
binlog-ignore-db=mysql
##启二进制日志功能
log-bin=mall-mysql-bin
##置二进制日志使用内存大小(事务)
binlog_cache_size=1M
##置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
##二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
##跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
##如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
  1. 重启容器
docker restart mysql-master
  1. 进入容器,并创建数据同步用户
docker exec -it <container_id>  /bin/bash
mysql -uroot -p
CREATE USER 'slave01'@'%' IDENTIFIED BY '123456';
CREATE USER 'slave02'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'slave01'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'slave02'@'%';
FLUSH PRIVILEGES;

查看主数据库同步信息

show master status;
  1. 创建从数据库容器mysql-slave-01
docker run -p 3308:3306 --name mysql-slave01 -v /home/lingxl/docker-data/mysql/mysql-slave01/log:/var/log/mysql -v /home/lingxl/docker-data/mysql/mysql-slave01/data:/var/lib/mysql -v /home/lingxl/docker-data/mysql/mysql-slave01/conf:/etc/mysql/conf.d --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  1. 配置mysql-slave-01从数据库my.cnf,注意server_id必须唯一
    文件路径:/home/lingxl/docker-data/mysql/mysql-slave01/conf
[mysqld]
##置server_id, 同一局域网中需要唯一
server_id=102
##定不需要同步的数据库名称
binlog-ignore-db=mysql
##启二进制日志功能
log-bin=mall-mysql-bin
##置二进制日志使用内存大小(事务)
binlog_cache_size=1M
##置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
##二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
##跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
##如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_Llog配置中继日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
## slave设置为只读(具有super权限的用户除外)
read_only=1
  1. 创建从数据库容器mysql-slave-02
docker run -p 3309:3306 --name mysql-slave02 -v /home/lingxl/docker-data/mysql/mysql-slave02/log:/var/log/mysql -v /home/lingxl/docker-data/mysql/mysql-slave02/data:/var/lib/mysql -v /home/lingxl/docker-data/mysql/mysql-slave02/conf:/etc/mysql/conf.d --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  1. 配置mysql-slave-01从数据库
    文件路径:/home/lingxl/docker-data/mysql/mysql-slave02/conf
[mysqld]
##置server_id, 同一局域网中需要唯一
server_id=103
##定不需要同步的数据库名称
binlog-ignore-db=mysql
##启二进制日志功能
log-bin=mall-mysql-bin
##置二进制日志使用内存大小(事务)
binlog_cache_size=1M
##置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
##二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
##跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
##如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_Llog配置中继日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
## slave设置为只读(具有super权限的用户除外)
read_only=1
  1. 重新启动从数据库
docker restart  mysql-slave01
docker restart  mysql-slave02
  1. 配置数据库主从复制

相关参数:
master_host: 主数据库的lP地址;
master_port: 主数据库的运行端口;
master_user: 在主数据库创建的用于同步数据的用户账号;
master_password:在主数据库创建的用于同步数据的用户密码;
master_log_fle:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;
master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;
master_connect_retry:.连接失败重试的时间间隔,单位为秒。

具体命令:

change master to master_host='宿主机IP',master_port=3307(主库端口号),master_user='slave(主库创建的用户)',master_password='123456',master_log_file='mall-mysql-bin.000002(show master status; 查看的相关刻度)',master_log_pos=154,master_connect_retry=30;

在从数据库中开启主从复制, 桥接式网络,宿主机IP的获取方式可以通过 docker network inspect bridge

change master to master_host='172.17.0.1',master_port=3307,master_user='slave01',master_password='123456',master_log_file='mall-mysql-bin.000001',master_log_pos=154,master_connect_retry=30;
start slave;

查看主从同步状态

show slave status \G;

在这里插入图片描述

  1. 主从复制测试
    在主数据库上插入一条数据。
insert into table01 values(1, 'test226');

在这里插入图片描述

在从数据库上进行查看,能够查看到。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2812748.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

React Hooks概述及常用的React Hooks介绍

Hook可以让你在不编写class的情况下使用state以及其他React特性 useState ● useState就是一个Hook ● 通过在函数组件里调用它来给组件添加一些内部state,React会在重复渲染时保留这个state 纯函数组件没有状态&#xff0c;useState()用于设置和使用组件的状态属性。语法如下…

【QT+QGIS跨平台编译】之五十二:【QGIS_CORE跨平台编译】—【qgsexpressionlexer.cpp生成】

文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…

微信公众号关键词自动回复

今天主要给大家讲一下如何实现微信公众号关键词的自动回复功能&#xff0c;就如网站的文章而言&#xff0c;进行人机识别&#xff0c;需要关注公众号回复验证码获取到验证码从而展示文章内容&#xff0c;&#xff0c;具体效果如下图。 springboot 2.3.2RELEASE 1、微信公众平台…

跨境电商必读:如何选择适合跨境ERP系统?

在当今全球化的商业环境下&#xff0c;跨境电商已经成为许多企业拓展业务的重要途径。而选择适合的ERP系统&#xff0c;对于实现跨境电商的高效运营和持续发展至关重要。本文将为您详细介绍如何选择适合跨境电商的ERP系统&#xff0c;助您在激烈的市场竞争中脱颖而出。 为什么…

2024.2.25 模拟实现 RabbitMQ —— 网络通信设计(服务器)

目录 引言 约定应用层的通信协议 自定义应用层协议 Type Length PayLod 实现 Broker Server 类 属性 与 构造 启动 Broker Server 停止 Broker Server 处理客户端连接 读取请求 与 写回响应 根据请求计算响应 清除 channel 引言 生产者 和 消费者 都是客户端&…

决策支持系统(DSS):一文读懂,同时分清和BI的区别

大家好&#xff0c;我是贝格前端工场&#xff0c;本期继续分享决策支持系统的设计&#xff0c;欢迎大家关注&#xff0c;如有B端系统界面的设计和前端需求&#xff0c;可以联络我们。 一、什么是DSS DSS系统是指决策支持系统&#xff08;Decision Support System&#xff09;…

2024年1月京东洗衣机行业数据分析:TOP10品牌销量销额排行榜

鲸参谋监测的京东平台1月份洗衣机市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台显示&#xff0c;今年1月份&#xff0c;京东平台上洗衣机的销量约160万件&#xff0c;环比上个月增长约42%&#xff0c;同比去年下滑7%&#xff1b;销售额约28亿元&#xff0c;环比…

ETH网络中的账户

ETH网络中的账户 Externally owned accounts (EOA) - 外部账户 由用户控制&#xff0c;我们导入助记词创建的账户就属于此类账户。 Contract accounts (smart contracts) - 合约账户 合约账户由以太坊虚拟机执行的代码控制。它也被称为智能合约。合约帐户有相关的代码和数据存…

Qt介绍以及qt_creater的安装和C++项目工程创建

最近天气严寒&#xff0c;同学们要注意保暖哦&#xff01;学习的同时别忘了照顾好自己呀&#xff01;o(*&#xffe3;▽&#xffe3;*)ブ 目录 一、Qt 1、Qt概念 2、常见的GUI 二、安装qt_creater 方法一&#xff1a; 方法二&#xff1a; 三、Qt_creater 中C项目的创建 …

企业微信主体怎么转让给别人?

企业微信变更主体有什么作用&#xff1f;当我们的企业因为各种原因需要注销或已经注销&#xff0c;或者运营变更等情况&#xff0c;企业微信无法继续使用原主体继续使用时&#xff0c;可以申请企业主体变更&#xff0c;变更为新的主体。企业微信变更主体的条件有哪些&#xff1…

超真诚婚礼邀请函小程序

结婚了&#xff0c;自己写个婚礼邀请函小程序&#xff0c;含泪省下&#xffe5;49.9&#xff1b;程序员的浪漫&#xff01; 1、定位直达 2、背景音乐 3、倒计时 4、CSDN图床 页面代码如下&#xff1a; <cu-custom bgColor"bg-yellow-light" isBack"{{fal…

AxureCloud配置文件详细介绍

AxureCloud配置文件详细介绍 原文地址&#xff1a;https://docs.axure.com/axure-cloud/business/custom-settings-json/ 通过修改 customsettings.json 可以修改AxureCloud私有部署的域名、端口、HTTPS、存储目录、是否开启插件等, 默认安装的路径为: C:\Program Files\Axure…

斯元Z-ONE-China Cybersecurity Tech Landscape·中国网络安全全景图-百度网盘下载

面向全球&#xff0c;斯元Z-ONE正式发布首版「China Cybersecurity Tech Landscape中国网络安全全景图」。 为了提升海外市场对中国网络安全行业的全局认识&#xff0c;方便国际客户及合作伙伴了解中国网络安全科技的赛道分布和国内外厂商对标&#xff0c;助力中国网安厂商出海…

抖音视频评论抓取软件|视频批量下载

抖音视频评论采集软件是一款基于C#开发的高效、便捷的工具&#xff0c;旨在为用户提供全面的数据采集和分析服务。该软件不仅支持通过关键词进行搜索抓取&#xff0c;还能够通过分享链接进行单个视频的抓取和下载&#xff0c;让用户轻松获取抖音视频评论数据。 &#x1f50d; …

文章总结(拉钩教育)

方法论 那对于我们专栏来说&#xff0c;在面对复杂的检索知识的时候&#xff0c;我更建议你通过理解记忆的方式进行学习。具体的方式有啥呢&#xff1f;我比较推荐问答的方式。也就是说&#xff0c;在学习每个知识点的时候&#xff0c;你可以一直问自己几个问题&#xff0c;比…

【Vue】组件通信2

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue ⛺️稳中求进&#xff0c;晒太阳 v-model原理 原理&#xff1a; v-model本质是一个语法糖&#xff0c;例如在输入输入框上&#xff0c;就是value属性和input数据的合写&#xff08;注…

如何战胜人性弱点,克服频繁交易?

巴菲特曾说过&#xff0c;如果商学院的学生毕业后&#xff0c;拿一张卡片来打洞&#xff0c;买一只打一孔洞&#xff0c;那么&#xff0c;经过一生&#xff0c;卡片上的洞洞最少的同学最有可能成为巨富。 “钱在这里从活跃的投资者流向有耐心的投资者。许多精力旺盛的有进取心投…

袁庭新ES系列12节 | Elasticsearch高级查询操作

前言 上篇文章讲了关于Elasticsearch的基本查询操作。接下来袁老师为大家带来Elasticsearch高级查询部分相关的内容。Elasticsearch是基于JSON提供完整的查询DSL&#xff08;Domain Specific Language&#xff1a;领域特定语言&#xff09;来定义查询。因此&#xff0c;我们有…

Unity零基础到进阶 | Unity中的 RectTransformUtility 方法整理汇总

Unity零基础到进阶 ☀️| RectTransformUtility 方法整理汇总一、RectTransformUtility 官方文档1.1 RectTransformUtility.CalculateRelativeRectTransformBounds&#xff08;重&#xff09;1.2 RectTransformUtility.FlipLayoutAxes1.3 RectTransformUtility.FlipLayoutOnAxi…

前端-Vue3递归组件自定义Tree

需求 PS&#xff1a;写在前面&#xff0c;需求想要一个Tree 形结构展示当前的组织机构&#xff0c;最末层节点可以选择&#xff0c;层级明确。第一选择网上npm官网或者github 找找成型的东西 element-ui Tree 没有组织结构线js-tree 好看&#xff0c;但是适配Vue3 有点费劲&a…