MySQL数据库实现主从复制,docker实现版

news/2024/5/19 11:25:29/文章来源:https://blog.csdn.net/qq_35699473/article/details/128132604

我这里是在同一台电脑上使用docker实现的主从复制,在物理机上整体思路是一致的

预备工作:安装好docker

使用docker运行MySQL

  1. 拉取MySQL镜像
docker pull mysql:5.7
  1. 运行mysql master容器
sudo docker run -p 33061:3306 --name mysql-master-v /mydata/mysql-master/conf:/etc/mysql/conf.d -v /mydata/mysql-master/logs:/logs -v /mydata/mysql-master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
  1. 运行mysql slave 容器
sudo docker run -p 33062:3306 --name mysql-slave  -v /mydata/mysql-slave/conf:/etc/mysql/conf.d -v /mydata/mysql-slave/logs:/logs -v /mydata/mysql-slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

上边两个主要的区别就是端口号和对应的文件夹不一样

配置mysql master

  1. 在目录/mydata/mysql-master/conf下新增文件,文件名my.cnf,其中内容为
[mysqld]
log-bin=mysql-bin ##启用二进制日志
server_id=101  ## 设置server_id,同一局域网中需要唯一

这里的配置文件对应的在/etc/my.cnf,但是因为修改该文件不方便,所以这样去新增一个文件

  1. 然后重启mysql master
sudo docker restart mysql-master
  1. 创建用户并赋予REPUBLICATIONSLAVE权限。这里创建的用户名和密码都叫xiaoming

进入mysql

sudo docker exec -it mysql-master mysql -uroot -proot

创建用户和权限

GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'xiaoming';
  1. 查看master状态
show master status;

在这里插入图片描述
此时就不要在主库做任何操作了,否则可能会变化,上图中的两个值后续会被用到。

配置mysql slave

  1. 在目录/mydata/mysql-slave/conf下新增文件,文件名my.cnf,其中内容为
[mysqld]
server_id=102  ## 设置server_id,同一局域网中需要唯一
  1. 重启mysql slave
sudo docker restart mysql-slave
  1. 配置mysql master的数据

登入mysql

sudo docker exec -it mysql-slave mysql -uroot -proot

设置master,其中的mysql_log_filemaster_log_pos就是配置master时的那两个值

change master to master_host='192.168.0.100',master_port=33061,master_user='xiaoming',master_password='xiaoming',master_log_file='mysql-bin.000001',master_log_pos=441;
  1. 开启同步
start slave;
  1. 查看状态
show slave status;或使用下列命令竖排查看
show slave status\G;

此时Slave_IO_RunningSlave_SQL_Running应都为Yes,说明设置成功

在这里插入图片描述

此时对master库进行修改,slave库会同步修改

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker with IPV6

1、绪论 在 Docker 容器或群服务中使用 IPv6 之前,您需要在 Docker 守护进程中启用 IPv6 支持。之后,您可以选择对任何容器、服务或网络使用 IPv4 或 IPv6(或两者) 2、配置默认 Docker IPv6 注意:IPv6 网络仅在 Lin…

揭秘你代理商做不起来货卖不出去的原因,探讨其背后的商业逻辑

现在很多代理商,大都是可以归于“个体户”性质。这些也代表了微小型企业,从前期的蓬勃发展,到现在的经营受限,特别是疫情等影响,很多人的经营都处于举步维艰的状态,如果你们现在是代理商,仓库里…

【Ubuntu】修改ubuntu和windows双系统启动顺序

目录一、问题描述二、背景知识1. GRUB是什么2. GRUB配置文件3./etc/default/grub 主配置文件二、问题分析三、解决方案1. 修改grub主配置文件2. 更新grub配置文件一、问题描述 UbuntuWindows双系统默认使用GRUB作为引导管理器,而且通常默认启动Ubuntu。这样过于死板…

CrossOver2023虚拟机软件安装双系统教程

您喜欢切换Windows系统吗?喜欢?好吧,您随意。对于其他人而言,想要不依赖于笨重的 Windows 模拟器就能在您的 Mac 系统上运行微软的应用程序,CrossOver是最简单的方式。讲真,您试过模拟器了吗?您…

美信监控易:网络管理之链路专线管理

专线通常是指运营商为企事业单位提供的专用网络线路,用于满足其业务需求。专线管理可以提供对专线基础信息的维护,以及性能数据的监测能力。通过系统自动地、周期性地执行专线测试,获取指标数据,实现专线连通性、性能数据的全面感…

DDD的简单落地实现

目录 概述 和微服务的联系 具体划分 遵循依赖倒置原则 其他规范 具体实现代码 总结 概述 领域式驱动(DDD) 这种模式的核心就是根据功能去划分领域,然后在这个领域内只做这个领域的事情。 和微服务的联系 和微服务有什么类似的地方&am…

[附源码]Python计算机毕业设计Django高校车辆管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

浅浅的计算机网络知识

目录 计算机网络(连接分散计算机设备以实现信息传递的系统)_百度百科 传输协议 传输层次 通信 计算机网络协议分层结构 开放系统互连参考模型的特点 IPv4协议 IPv6协议 FTP HTTP 网络传输协议 较为系统框架 先面向百度搭建理解框架 计算机网…

【OpenCV-Python】教程:3-10 直方图(4)直方图反向投影

OpenCV Python 直方图 反向投影 【目标】 直方图反向投影calcBackProject 【原理】 用于图像分割和查找感兴趣目标。简单的说,会创建一个与输入图像同样大小的图像(单通道),每个像素对应像素属于目标的概率。更简单的说就是&am…

model.eval 至关重要!!!!model.eval()是否开启 BN 和 Dropout 的不同

之前写过一个项目,eval的时候很正常,但是一infer就有问题,多次排查发现,原来就是只缺一个 model.eval()哇,重大教训,我debug好久,在小姑娘面前翻车… 🤣🤣🤣…

HBase 开发:使用Java操作HBase 第1关:创建表

为了完成本关任务,你需要掌握:1.如何使用Java连接HBase数据库,2.如何使用Java代码在HBase中创建表。 如何使用Java连接HBase数据库 Java连接HBase需要两个类: HBaseConfigurationConnectionFactoryHBaseConfiguration 要连接HBase…

RK3588平台开发系列讲解(PWM篇)PWM及backlight的使用方法

平台内核版本安卓版本RK3588Linux 5.10Android12🚀返回专栏总目录 文章目录 一、PWM驱动二、DTS配置三、PWM在user space的使用四、PWM在背光中的使用4.1 Backlight DTS4.2 PWM Backlight 调试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍PWM以及backli…

初学者学习JS很吃力怎么办?到底该如何学习JS?

前言 觉得吃力是很正常的,首先这证明你在某些知识点上没有理解透彻,JS挺多的知识点点其实是比较抽象的,比如闭包、原型和原型链等,其次便是不会变通运用,这主要是敲代码熟练度的问题,所以我针对你这种情况…

zcu106 lwip搭建以太网配置寄存器

文章目录实验一1.配置网口GEM32.导出xsa文件,在vitis中创建工程,选择freertos10_xilinx的操作系统来使用3.配置lwip211,选择SOCKET API的模式4.创建工程 选择FreeRTOS Iwip TCP Perf Server模板5.代码分析main.cfreertos_tcp_perf_server.cfr…

Elasticsearch 安装及启动【Windows】

一、下载 Elasticsearch 官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择自己所需版本进行下载,这里以Elasticsearch 8.2.2 为例 点击 Download,选择 Windows 版本 二、使用步骤 1.安装 Elasticse…

基于约束关系的图表设计

标准的基于 GUI 的图形设计工具仅支持有限的“对齐向导”风格的定位,具有基本的对象分组系统,并实现对齐或分布对象的原始功能。这些工具没有办法记住对象之间的约束和关系,也没有办法定义和重用抽象。我一直不满意现有的设计工具&#xff0c…

【正版软件】Navicat Monitor 实时数据库监控工具,一套安全、简单而且无代理的远程服务器监控工具。

简言 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 SQL Server,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等…

外包干了2年,彻底废了...

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近2年的点点点,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试…

软件压力测试有哪些测试流程?软件测试报告收费情况

软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。通过给软件系统不断施压,强制其在极限条件下运行,以观察软件系统可运行到哪种程度,从而发现系统性能缺陷。测试人员根据测试过程进行总结和分析&#xf…

报错记录:AES加密报错:Illegal key size or default parameters解决方案

先看代码逻辑:通过hutool的AES工具类来进行加密 /*** 加密** param content* param key* return*/public static String encrypt(String content, String key) {if (StringUtils.isBlank(content) || StringUtils.isBlank(key)) {return null;}AES aes new AES(Mod…