mysql_docker主从复制_实战_binlog混合模式_天座著
步骤1:拉取镜像
docker pull mariadb:latest
步骤2.1:创建两个文件夹用于放置挂载mysql的my.cnf
/tianzuomysqlconf/master
/tianzuomysqlconf/slave
mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave |
步骤2.2:创建一份my.cnf到步骤2中的文件夹。
#创建一个自定义的 my.cnf 文件:在本地主机上创建一个新的 my.cnf 文件,你可以使用任何文本编辑器进行编辑。确保按照 MariaDB 文档提供的配置选项进行修改 # 新的my.cnf文件内容可以为空。在MySQL中,my.cnf是配置文件,用于配置数据库服务器的各种参数和设置。如果你没有特定的需求或者不需要修改任何配置参数,那么新的my.cnf文件可以保持为空。在这种情况下,MySQL将使用默认的配置参数来启动和运行。但请注意,如果你需要自定义配置,确保将所需的配置项添加到my.cnf文件中,以便按照你的要求进行设置。 cd /tianzuomysqlconf/master touch my.cnf cp my.cnf /tianzuomysqlconf/slave |
步骤3:创建两个mysql容器,并使用/etc/mysql/conf.d/ 目录挂载my.cnf文件。
#分号可一起执行。 docker run -p 3309:3306 --name tianzuo_mysql_test_master -d -e MARIADB_ROOT_PASSWORD=STZ1024 -v /tianzuomysqlconf/master/my.cnf:/etc/mysql/conf.d/my.cnf mariadb;docker run -p 3310:3306 --name tianzuo_mysql_test_slave -d -e MARIADB_ROOT_PASSWORD=STZ1024 -v /tianzuomysqlconf/slave/my.cnf:/etc/mysql/conf.d/my.cnf mariadb |
步骤3-error:如果过程中有操作失误,想要删除容器。
docker rm -f tianzuo_mysql_test_master;docker rm -f tianzuo_mysql_test_slave |
步骤4:开始配置MySQL主从复制(binlog混合模式)
步骤4-1:配置主数据库(Master):
打开主数据库的配置文件my.cnf(/tianzuomysqlconf/master/my.cnf)。 vi /tianzuomysqlconf/master/my.cnf 按下键盘字母:i键 添加以下配置项: [mysqld] server-id = 1 log_bin = mysql-bin binlog_format = MIXED esc :wq 保存并关闭配置文件。 重启主数据库。 docker restart tianzuo_mysql_test_master |
步骤4-2:配置从数据库(Slave):
打开从数据库的配置文件my.cnf(/tianzuomysqlconf/slave/my.cnf)。 vi /tianzuomysqlconf/slave/my.cnf 按下键盘字母:i键 添加以下配置项: [mysqld] server-id = 2 relay_log = relay-log log_slave_updates = 1 保存并关闭配置文件。 重启从数据库。 docker restart tianzuo_mysql_test_slave |
步骤4-3:在主数据库中创建用于复制的账户
登录主数据库的命令行或图形化界面。 docker exec -it tianzuo_mysql_test_master bash mysql -h localhost -P 3306 -u root -p"STZ1024" 执行以下SQL语句: CREATE USER 'replication'@'%' IDENTIFIED BY 'STZ1024';GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; FLUSH PRIVILEGES; |
步骤4-4:获取主数据库的二进制日志位置
在主数据库的命令行或图形化界面执行以下SQL语句: SHOW MASTER STATUS; 记下输出结果中的File和Position字段的值,将其用于后续步骤。 |
步骤4-5:配置从数据库的复制信息
登录从数据库的命令行或图形化界面。 docker exec -it tianzuo_mysql_test_slave bash mysql -h localhost -P 3306 -u root -p"STZ1024" 执行以下SQL语句,将主数据库的信息配置到从数据库: CHANGE MASTER TO MASTER_HOST = '172.17.0.1', MASTER_PORT = 3309, MASTER_USER = 'replication', MASTER_PASSWORD = 'STZ1024', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 771; 备注:172.17.0.1是宿主机的ip,各位看官自行替换。 |
步骤4-6:启动从数据库的复制进程:
在从库中执行以下SQL语句: START SLAVE; |
步骤4-7:检查主从复制状态
在从数据库的命令行或图形化界面执行以下SQL语句: SHOW SLAVE STATUS\G; 检查输出结果中的Slave_IO_Running和Slave_SQL_Running字段是否都为"YES",表示主从复制已经成功建立。 Slave_IO_Running反映了复制进程中I/O线程的状态。当其值为"YES"时,表示I/O线程正在正常运行,能够从主数据库接收复制日志文件(binlog)。 Slave_SQL_Running反映了复制进程中SQL线程的状态。当其值为"YES"时,表示SQL线程正在正常运行,能够将接收到的复制日志应用到备份数据库。 |
步骤4-error:如果需要重新配置从数据的复制信息,先停止从数据库的复制进程:
在从库中执行以下SQL语句: STOP SLAVE; 再进行授权 CHANGE MASTER TO MASTER_HOST = '172.17.0.1', MASTER_PORT = 3309, MASTER_USER = 'replication', MASTER_PASSWORD = 'STZ1024', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 771; 再回到步骤4-6 START SLAVE; |
步骤5-验证:
步骤5-1 利用navicat建立两个连接;
步骤5-2 尝试在主库中创建一个库,看看从库会不会自动生成。
重新建立3310连接后,从库同步成功。速度贼快。至此验证成功。
相关文章:

mysql_docker主从复制_实战_binlog混合模式_天座著
步骤1:拉取镜像 docker pull mariadb:latest 步骤2.1:创建两个文件夹用于放置挂载mysql的my.cnf /tianzuomysqlconf/master /tianzuomysqlconf/slave mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave 步骤2.2:创…...

鸿蒙开发学习笔记1——真机运行hello world
问题背景 学习任何语言和框架的第一步,永远都是跑通熟悉的“hello world”,本文将介绍鸿蒙开发如何跑通“hello world”。 问题分析 一、构建第一个ArkTS应用(fa模型) 说明:请使用DevEco Studio V3.0.0.601 Beta1及…...
Java数组,简简单单信手沾来~
——数组,一组相同数据类型的数据 一.一维数组 1.数组的基本概念 1)数组用于存储多个同一数据类型的数据 2)数组是数据类型【引用类型】 3)数组的形式:数据类型 [] 4)数组的下标从0开始 5)数…...
认识SourceTree
一. SourceTree是什么 SourceTree是一款免费的Git和Mercurial版本控制系统,它可以帮助开发人员在一个友好的UI界面中管理代码,方便地进行版本控制和代码同步。支持创建、克隆、提交、push、pull 和合并等操作。 二. SourceTree的安装破解 1. 如果你还…...
python之列表推导式
列表推导式是一种简洁的方式来创建列表。它允许您通过在单个表达式中定义循环和条件逻辑,以一种更紧凑的方式生成新的列表。使用列表推导式可以使代码更简洁,易于阅读,并且通常比传统的迭代方法更快。 列表推导式的一般语法形式为:…...

selenium自动化测试之搭建测试环境
自动化测试环境: Python3.7Selenium3.141谷歌浏览器76.0/火狐浏览器 1、安装Python并配置环境变量。 下载并安装:配置环境变量:C:\Python37;C:\Python37\Scripts; 2、安装Pycharm开发工具。 下载地址: 注意下载:Co…...

模拟实现消息队列(以 RabbitMQ 为蓝本)
目录 1. 需求分析1.1 介绍一些核心概念核心概念1核心概念2 1.2 消息队列服务器(Broker Server)要提供的核心 API1.3 交换机类型1.3.1 类型介绍1.3.2 转发规则: 1.4 持久化1.5 关于网络通信1.5.1 客户端与服务器提供的对应方法1.5.2 客户端额外…...

WordPress更换域名后-后台无法进入,网站模版错乱,css失效,网页中图片不显示。完整解决方案(含宝塔设置)
我在实际解决问题时用到了 【简单暴力解决方案】的《方法一:修改wp-config.php》 和 【简单暴力-且特别粗暴-的解决方案】 更换域名时经常遇到的几个问题: 1、更换域名后,后台无法进入 2、更换域名后,网站模版错乱,css失效 3、更换域名后,网页中图片不显示 这是为什…...
无法正确识别车牌(Python、OpenCv、Tesseract)
我正在尝试识别车牌,但出现了错误,例如错误/未读取字符 以下是每个步骤的可视化: 从颜色阈值变形关闭获得遮罩 以绿色突出显示的车牌轮廓过滤器 将板轮廓粘贴到空白遮罩上 Tesseract OCR的预期结果 BP 1309 GD 但我得到的结果是 BP 1309…...

VSCODE[配置ssh免密远程登录]
配置ssh免密远程登录 本文摘录于:https://blog.csdn.net/qq_44571245/article/details/123031276只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 这里要注意如下几个地方: 1.要进入.ssh目录创建文件: 2.是拷贝带"ssh-…...

Multi-object navigation in real environments using hybrid policies 论文阅读
论文信息 题目:Multi-object navigation in real environments using hybrid policies 作者:Assem Sadek, Guillaume Bono 来源:CVPR 时间:2023 Abstract 机器人技术中的导航问题通常是通过 SLAM 和规划的结合来解决的。 最近…...

初始多线程
目录 认识线程 线程是什么: 线程与进程的区别 Java中的线程和操作系统线程的关系 创建线程 继承Thread类 实现Runnable接口 其他变形 Thread类及其常见方法 Thread的常见构造方法 Thread类的几个常见属性 Thread类常用的方法 启动一个线程-start() 中断…...
论坛项目day3|开发社区首页
在典型的基于层次结构的软件架构中,特别是在使用MVC(模型-视图-控制器)设计模式的情况下,Controller、Service、DAO(数据访问对象)和Entity通常扮演着不同的角色,并且它们之间有清晰定义的关系。…...

Server - 文字转语音 (Text to Speech) 的在线服务 TTSMaker
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132287193 TTSMaker 是一款免费的文本转语音工具,提供语音合成服务,支持多种语言,包括英语、法语、德语、西班…...

Python学习笔记_基础篇_数据类型之字符串
一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list 列表用[] 元祖:tuple 元祖用() 字典:dict 注:所有的数据类型都存在想对应…...

(二分查找) 11. 旋转数组的最小数字 ——【Leetcode每日一题】
❓剑指 Offer 11. 旋转数组的最小数字 难度:简单 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转…...
docker 制作tomcat镜像
需要下载tomcat安装包和jdk安装包,我这边下载的jdk版本分别为(jdk和tomcat版本需要对应上) apache-tomcat-9.0.78.tar.gzjdk-8u381-linux-x64.tar.gz创建一个readme.txt空文件 readme.txt创建一个Dockerfile文件 # centos系统作为底层 FROM …...

年之年的选择,组装版
组件:<!--* Author: liuyu liuyuxizhengtech.com* Date: 2023-02-01 16:57:27* LastEditors: wangping wangpingxizhengtech.com* LastEditTime: 2023-06-30 17:25:14* Description: 时间选择年 - 年 --> <template><div class"year-range-pick…...
英语词法——代词
代词是用来代替名词、起名词作用的短语、分句和句子的词。英语中代词根据其意义和作用可分为九类:人称代词、物主代词、反身代词、相互代词、指示代词、疑问代词、不定代词、关系代词和连接代词。 第一节 人称代词 一、人称代词的形式和用法 人称代词单数复数第一人称第二人…...

1475.商品折扣后的最终价格
文章目录 题目描述解题思路:方法一:通俗解法方法二:单调栈 leetcode原题链接 1475. 商品折扣后的最终价格 题目描述 给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。 商店里正在进行促销活动,如果你…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...