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

Docker----------day-mysql8主从复制

1.安装master

1.1拉取镜像

docker search mysql
docker pull mysql
mkdir -p /home/mysql8/data
mkdir -p /home/mysql8/conf
mkdir -p /home/mysql8/log

1.2 2.启动交互式添加容器数据卷

#不添加容器数据卷
docker run -p 3307:3306 --name mysql_master -e MYSQL_ROOT_PASSWORD=xql123 -d mysql#添加容器数据卷,conf.d是自定义的配置文件存放目录,/home/...为宿主机中自定义目录
docker run -d -p 3307:3306 --privileged=true -v /home/mysql8/log:/var/log/mysql -v /home/mysql8/data:/var/lib/mysql -v /home/mysql8/conf:/etc/mysql/conf.d --name mysql_master -e MYSQL_ROOT_PASSWORD=xql123 -d mysql

3.查看当前是否启动和日志


docker psdocker logs --since 30m mysql_master

4.进入容器登录mysql

docker exec -it mysql_master /bin/bash登录
mysql -uroot -pALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xql123';
#'%'表示对允许所有ip访问
#'123456'为自定义的密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xql123';
#'%'表示对允许所有ip访问
#'xql123'为自定义的密码flush privileges; /*刷新权限*/查看编码字符集
show variables like 'character%';

在这里插入图片描述

5.去主机容器卷目录新增文件my.cnf存放到/home/mysql8/conf目录下

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
本地新建my.cnf
内容如上scp上传
scp -r C:\Users\xuqinglei\Desktop\my.cnf root@主机ip:/home/mysql8/conf/

6.重启mysql 查看编码

docker restart 容器ID进入容器 docker exec -it mysql_master /bin/bashshow variables like 'character%';

7.测试成功

在这里插入图片描述

2.安装slave从机

2.1创建文件夹

mkdir -p /home/mysql8/slave/conf
mkdir -p /home/mysql8/slave/data
mkdir -p /home/mysql8/slave/log

2.2启动

docker run -p 3308:3306 --name mysql_master -e MYSQL_ROOT_PASSWORD=xql123 -d mysqldocker run -d -p 3310:3306 --privileged=true -v /home/mysql8/slave/log:/var/log/mysql -v /home/mysql8/slave/data:/var/lib/mysql -v /home/mysql8/slave/conf:/etc/mysql/conf.d --name mysql_slave -e MYSQL_ROOT_PASSWORD=xql123 -d mysql

3.查看当前是否启动和日志


docker psdocker logs --since 30m mysql_master

4.进入容器登录mysql

docker exec -it mysql_master /bin/bash登录
mysql -uroot -pALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xql123';
#'%'表示对允许所有ip访问
#'123456'为自定义的密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xql123';
#'%'表示对允许所有ip访问
#'xql123'为自定义的密码flush privileges; /*刷新权限*/查看编码字符集
show variables like 'character%';

5.去主机容器卷目录新增文件my.cnf存放到/home/mysql8/conf目录下

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
本地新建my.cnf
内容如上scp上传
scp -r C:\Users\xuqinglei\Desktop\my.cnf root@主机ip:/home/mysql8/slave/conf/

3.配置主从复制

3.1去主机路径/home/mysql8/conf下编辑my.cnf

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8##设置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

3.2进入master

docker exec -it mysql_master /bin/bash 
mysql -uroot -p
# CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
CREATE USER 'xql_slave'@'%' IDENTIFIED BY '密码';
# GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '用户名'@'%';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'xql_slave'@'%';输入show master status;查看Master状态:

在这里插入图片描述

3.4去主机路径/home/mysql8/slave/conf下编辑my.cnf

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8##设置server_id,同一局域网中需要唯一
server_id=102
##指定不需要同步的数据库名称
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

3.3进入salve

docker exec -it mysql_slave /bin/bash 
mysql -uroot -p
change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;
change master to master_host='xxxxxxxx', master_user='xql_slave', master_password='密码', master_port=3307, master_log_file='mall-mysql-bin.000003', master_log_pos=156, master_connect_retry=30;
master_port:Master的端口号,指的是容器的端口号
master_user:用于数据同步的用户
master_password:用于同步的用户的密码
master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒在从服务器中的mysql终端执行show slave status \G,查看主从同步状态。

3.4 启动slave

start slave;

在这里插入图片描述

① 进入Mysql数据库查看max_connection_errors: show variables like "max_connection_errors";
② 修改max_connection_errors的数量为1000:set global max_connect_errors = 1000;
③ 修改 max_connections 的数量为1000 :set global max_connections = 1000;3.最后使用 mysql> flush hosts; 命令清理一下hosts文件;
flush hosts

4测试

在这里插入图片描述
在master新建数据库和库表
我们点开slave发现会自动同步!!!!!!!!!!!!

相关文章:

Docker----------day-mysql8主从复制

1.安装master 1.1拉取镜像 docker search mysql docker pull mysql mkdir -p /home/mysql8/data mkdir -p /home/mysql8/conf mkdir -p /home/mysql8/log1.2 2.启动交互式添加容器数据卷 #不添加容器数据卷 docker run -p 3307:3306 --name mysql_master -e MYSQL_ROOT_PASS…...

【Nginx】【一】Nginx简介

Nginx简介 背景介绍 Nginx(“engine x”)一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是200…...

跳跃游戏II-力扣45-java 动态规划

一、题目描述给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:0 < j < nums[i] i j < n返回到达 nums[n - …...

【算法】用python代码解决“鬼谷问徒”问题

文章目录题目相关链接算法代码代码可优化的点喜欢这种搞逻辑的题目。据说chatGPT暂时还不会写hhh。水平有限&#xff0c;我自己花了两个小时才实现&#xff0c;不过解决问题的过程还是很快乐的。题目 一天&#xff0c;鬼谷子随意从2-99中选取了两个数。他把这两个数的和告诉了…...

【1】linux命令每日分享——mkdir创建目录

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…...

TPM 2.0实例探索1

1. 获取用户名 命令及结果如下所示&#xff1a; $ whoami ph2. 获取设备序列号&#xff08;串号&#xff09; 命令及结果如下所示&#xff1a; $ sudo dmidecode | grep "Serial Number" | head -n 1Serial Number: MP260S483. 将用户名和设备序列号放入到一个文…...

buu [BJDCTF2020]signin 1

题目描述&#xff1a; 题目分析&#xff1a; 打开发现是16 进制数&#xff08;我也不知道我是怎么发现的&#xff0c;先是尝试了md5和rot-n,发现都不行&#xff0c;然后参考大佬的才知道是16进制&#xff09;使用 在线16进制转字符串 便能得到 flag但我如果不想用线上工具&…...

Storage

WebStorage主要提供了一种机制&#xff0c;可以让浏览器提供一种比cookie更直观的key、value存储方式&#xff1a; localStorage&#xff1a;本地存储&#xff0c;提供的是一种永久性的存储方法&#xff0c;在关闭掉网页重新打开时&#xff0c;存储的内容依然保留&#xff1b;…...

CAS底层原理及ABA问题

一、案例CAS是Java中Unsafe类里面的一个方法&#xff0c;它的全称是叫CompareAndSwap比较并交换的一个意思&#xff0c;它的主要功能是能够去保证在多线程的环境下对于共享变量修改的一个原子性。例如&#xff0c;比如说像这样一个场景&#xff0c;有一个成员变量state&#xf…...

华为OD机试真题Python实现【单词反转】真题+解题思路+代码(20222023)

题目 输入一个英文文章片段, 翻转指定区域的单词顺序, 标点符号和普通字母一样处理, 例如输入字符串 I am a developer. [0,3] 则输出 developer. a am I 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 输入 使用换行隔开 3 个参数 第一…...

嵌入式linux驱动学习-用cdev代替register_chrdev()

​上回说到字符设备驱动程序的注册与销毁register_chrdev()和unregister_chrdev()这是有缺陷的。 嵌入式lnux驱动学习-2.一个驱动程序的流程 现在用另外一个更好的方法代替&#xff0c;我们先来看看register_chrdev()实际上是调用了 __register_chrdev(major, 0, 256, name,…...

技术更新!10个MySQL性能调优技巧

MySQL是世界上使用最广泛的开源数据库&#xff0c;它在业界的受欢迎程度让其他数据库望尘莫及。它是一个关系型数据库管理系统&#xff0c;多年来依然是应用程序的核心。在过去几年里&#xff0c;MySQL有一些重要发展。因此&#xff0c;整理更新10个MySQL性能调优技巧。 模式设…...

ICLR 2023|VLDet:从图像-文本对中学习区域-词语对齐的开放词汇式目标检测

原文链接&#xff1a;https://www.techbeat.net/article-info?id4614&isPreview1 作者&#xff1a;林闯 目标检测任务在AI工业界具有非常广泛的应用&#xff0c;但由于数据获取和标注的昂贵&#xff0c;检测的目标一直被限制在预先设定好的有限类别上。而在学术界&#xf…...

如何效率搭建企业流程系统?试试低代码平台吧

编者按&#xff1a;本文介绍了一款可私有化部署的低代码平台&#xff0c;可用于搭建团队流程管理体系&#xff0c;并详细介绍了该平台可实现的流程管理功能。关键词:可视化设计&#xff0c;集成能力&#xff0c;流程审批&#xff0c;流程调试天翎是国内最早从事快速开发平台研发…...

嵌入式开发:C++在深度嵌入式系统中的应用

深度嵌入式系统通常在C语言中实现。为什么会这样?这样的系统是否也能从C中获益?嵌入式开发人员在将广泛、高效的深度嵌入式代码库从C转换为C方面的实践经验的贡献。嵌入式和深度嵌入式系统通常用C而不是C实现。软件开发人员必须放弃C作为强类型系统、模板元编程(TMP)和面向对…...

快鲸scrm发布快递行业私域运营解决方案

现如今&#xff0c;快递行业竞争格局日益激烈&#xff0c;前有“四通一达”等传统快递企业&#xff0c;后有自带互联网基因、绑定电商流量新贵快递企业&#xff0c;如菜鸟、京东等。在这一背景下&#xff0c;很多快递企业开启了增长破局之旅&#xff0c;他们纷纷搭建起私域运营…...

【蓝桥杯集训·每日一题】AcWing 1497. 树的遍历

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴递归一、题目 1、原题链接 1497. 树的遍历 2、题目描述 一个二叉树&#xff0c;树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历&#xff0c;请你输出它的 …...

详解matplotlib的color配置

详解matplotlib的color配置 Matplotlib可识别的color格式 格式举例RGB或RGBA&#xff0c;由[0, 1]之间的浮点数组成的元组&#xff0c;分别代表红色、绿色、蓝色和透明度(0.1, 0.2, 0.5), (0.1, 0.2, 0.5, 0.3不区分大小写的十六进制RGB或RGBA字符串。‘#0f0f0f’, ‘#0f0f0f…...

Oracle删除表数据的三种方式

简介 oracle数据库mysql数据库都是如此 drop命令>truncate命令>delete命令&#xff0c;它们的执行方式、效率和结果各有不同。还是万年的student 学生表 自己可以建个尝试这玩一下。 drop命令 语句: drop table 表名&#xff1b; 理由&#xff1a;1、用drop删除表数据&…...

第 16 章_多版本并发控制

第 16 章_多版本并发控制 1. 什么是MVCC MVCC &#xff08;Multiversion Concurrency Control&#xff09;&#xff0c;多版本并发控制。顾名思义&#xff0c;MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...