【mysql】mysql之主从部署以及介绍
本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《python运维脚本》: python运维脚本实践
《shell》:shell学习
《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战
《k8》从问题中去学习k8s
《docker学习》暂未更新
《ceph学习》ceph日常问题解决分享
《日志收集》ELK+各种中间件
《运维日常》运维日常
《linux》运维面试100问
《DBA》db的介绍使用(mysql、redis、mongodb...)
一、mysql主从
1.主库操作
1.主库配置server_id 2.主库开启binlog 3.主库授权从库连接的用户 4.查看binlog信息 5.导出所有数据
2.从库操作
1.从库配置server_id(跟主库不一致) 2.确认主库授权的用户可以连接主库 3.同步主库数据 4.配置主库信息(change master to) 5.开启slave
3.主从复制原理
1)图解

2)文字描述
(1)从库执行change master to语句,然后立即将主库的信息(ip、端口等)记录到master.info中,这个文件就在从库的数据目录下。 (2)从库执行start slave语句的瞬间,会立即生成IO_Thread和SQL_Thread。 (3)IO_Thread读取master.info文件,获取主库的相关信息(IP、端口号等)。 (4)IO_Thread连接主库,连接层开始验证用户名、密码、端口号、IP等是否合法。 一旦合法,主库会立即分配一个dump_thread线程,来与IO_Thread进行交互。 (5)IO_Thread根据master.info中的二进制日志信息,向主库的DUMP_Thread线程请求最新的二进制日志。 (6)DUMP_Thread经过show master status查询,如果发现有新的二进制日志,就截取新的日志并返回给从库的IO_Thread。 (7)从库IO_Thread收到主库发来的binlog,存储在到TCP_IP缓存中,在网络底层返回ACK给主库。 (8)从库IO_Thread会将二进制日志信息写入到relay-log中。 (9)从库IO_Thread更新master.info信息,重置二进制日志位置点信息。 (10)从库SQL_Thread读取relay-log.info文件,获取上次执行过的relay-log.info位置点。 (11)根据获取到的位置点,SQL_Thread按照位置点往下执行relaylog日志。 (12)SQL_Thread执行完后,更新relay-log.info文件。 (13)pwrge线程(非主从线程)把应用过的relay_log定期自动清理
4.主从中涉及到的文件或者线程
1)主库
1.binlog:主库执行的sql语句 2.dump线程:对比binlog是否更新,获取新的binlog
2)从库
1.IO线程:连接主库,询问新数据,获取新数据 2.SQL线程:执行从主库哪来的sql语句 3.relay-log:中继日志,记录从主库拿过来的binlog 4.master.info:记录主库binlog信息,会随着同步进行更新 5.relay-log.info:记录sql线程执行到了那里,下次从哪里开始执行
三、主从复制的搭建
1.主库操作
1)配置
[root@db03 ~]# vim /etc/my.cnf [mysqld] server_id=1 log_bin=/service/mysql/data/mysql-bin[root@db03 ~]# /etc/init.d/mysqld start
2)授权一个用户
mysql> grant replication slave on *.* to rep@'172.16.1.%' identified by '123'; Query OK, 0 rows affected (0.03 sec)
3)查看binlog信息
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000003 | 326 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
4)导出所有数据
[root@db03 data]# mysqldump -uroot -p -A --master-data=2 --single-transaction > /tmp/full.sql[root@db03 data]# scp /tmp/full.sql 172.16.1.52:/tmp/
2.从库操作
1)配置
[root@db02 ~]# vim /etc/my.cnf [mysqld] server_id=2[root@db02 ~]# /etc/init.d/mysqld start
2)验证主库用户
[root@db02 ~]# mysql -urep -p -h172.16.1.53
3)同步数据
[root@db02 ~]# mysql -uroot -p123 < /tmp/full.sql
4)配置主从
change master to master_host='172.16.1.51', master_user='rep', master_password='123', master_log_file='mysql-bin.000001', master_log_pos=787368; Query OK, 0 rows affected, 2 warnings (0.02 sec)
5)开启线程
mysql> start slave; Query OK, 0 rows affected (0.04 sec)
6)查看主从
mysql> show slave status\GSlave_IO_Running: YesSlave_SQL_Running: Yes
3.主从数据库出错
1)IO线程出错
mysql> show slave status\GSlave_IO_Running: NoSlave_SQL_Running: Yesmysql> show slave status\GSlave_IO_Running: ConnectingSlave_SQL_Running: Yes#排查思路 1.网络[root@db02 ~]# ping 172.16.1.53 2.端口[root@db02 ~]# telnet 172.16.1.53 3306 3.防火墙 4.主从授权的用户错误 5.反向解析skip-name-resolve 6.UUID或server_id相同
2)SQL线程出错
mysql> show slave status\GSlave_IO_Running: YesSlave_SQL_Running: No#原因: 1.主库有的数据,从库没有 2.从库有的数据,主库没有#处理方式一:自欺欺人 1.临时停止同步 mysql> stop slave; 2.将同步指针向下移动一个(可重复操作) mysql> set global sql_slave_skip_counter=1; 3.开启同步 mysql> start slave;#处理方式二:掩耳盗铃 1.编辑配置文件 [root@db01 ~]# vim /etc/my.cnf #在[mysqld]标签下添加以下参数 slave-skip-errors=1032,1062,1007#处理方式三:正解 重新同步数据,重新做主从
相关文章:
【mysql】mysql之主从部署以及介绍
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...
Invoke-Maldaptive:一款针对LDAP SearchFilter的安全分析工具
关于Invoke-Maldaptive MaLDAPtive 是一款针对LDAP SearchFilter的安全分析工具,旨在用于对LDAP SearchFilter 执行安全解析、混淆、反混淆和安全检测。 其基础是 100% 定制的 C# LDAP 解析器,该解析器处理标记化和语法树解析以及众多自定义属性&#x…...
QT 读取Excel表
一、QAxObject 读取excel表的内容,其仅在windows下生效,当然还有其他跨平台的方案。 config qaxcontainer #include <QAxObject>QStringList GetSheets(const QString& strPath) {QAxObject* excel new QAxObject("Excel.Application&…...
深入理解 Vue 组件样式管理:Scoped、Deep 和 !important 的使用20240909
深入理解 Vue 组件样式管理:Scoped、Deep 和 !important 的使用 在前端开发中,样式的管理与组件化开发之间的平衡一直是一个难题。Vue.js 提供了一些强大的工具来帮助开发者在开发复杂的应用时管理样式。这篇文章将详细介绍 Vue 中的 scoped、:deep() 和…...
C语言内存函数(21)
文章目录 前言一、memcpy的使用和模拟实现二、memmove的使用和模拟实现三、memset函数的使用四、memcmp函数的使用总结 前言 正文开始,发车! 一、memcpy的使用和模拟实现 函数模型:void* memcpy(void* destination, const void* source, size…...
三高基本概念之-并发和并行
并行和并发是计算机科学中两个重要但容易混淆的概念,它们之间的主要区别可以从以下几个方面进行阐述: 一、定义与含义 并行(Parallel):并行是指两个或多个事件在同一时刻发生,即这些事件在微观和宏观上都…...
宝塔面板FTP连接时“服务器发回了不可路由的地址。使用服务器地址代替。”
参考 https://blog.csdn.net/neizhiwang/article/details/106628899 错误描述 我得服务器是腾讯,然后使用宝塔建了个HTML网站,寻思用ftp上传,结果报错: 状态: 连接建立,等待欢迎消息... 状态: 初始化 TLS 中... 状…...
面试的一些小小经验
无论何时,找到合适的满意的工作(距离住处的地理位置,薪资,工作氛围)并不是一件容易的事情。个人能力与职位的适配性永远是有误差的客观存在。 十全十美难得,满足个人的个体化优先级才是客观的存在。 1.投简…...
IV转换放大器原理图及PCB设计分析
【前言】 今天给大家分享一下关于IV转换放大器的相关电路设计心得。IV转换使用的场合非常之多,尤其是电流型输出的传感器,比如光敏二极管、硅光电池等等,这些传感器输出的电流信号非常微弱,我们如果需要检测它们,首先得…...
【数学建模经验贴】一个研赛数模老手的经验
我(非C君,是一个朋友)参加了3次“深圳杯”数模,1次全国大学生数模,以及1次全国研究生数模,2016年参加了全国研究生数模的交流会,但没有参加过美赛,应该算是一个江湖老手了吧。下面内…...
vivo手机已删除的短信还能恢复吗?
虽然现在我们很少使用vivo手机的短信功能,但是我们偶尔还会通过vivo手机短信功能接收一些重要的信息。如果我们在清理垃圾短信的时候误删了vivo手机重要短信,该怎么恢复呢? 方法一:通过vivo云服务恢复 1、确保您已开启vivo云服务…...
[网络][CISCO]CISCO IOS升级
CISCO IOS升级-(转)2008-06-27 15:35IOS 升级 在介绍CISCO路由器IOS升级方法前,有必要对Cisco路由器的存储器的相关知识作以简单介绍。路由器与计算机相似,它也有内存和操作系统。在Cisco路由器中,其操作系统叫做互连…...
通过python提取PDF文件指定页的图片
整体思路 要从 PDF 文件中提取指定页和指定位置的图片,可以分几个步骤来实现: 1.1 准备所需工具与库 在 Python 中处理 PDF 和图像时,需要使用几个库: PyMuPDF (fitz):用于读取和处理 PDF 文件,可以精确…...
Leetcode Hot 100刷题记录 -Day12(轮转数组)
轮转数组 问题描述: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4]解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向…...
GitHub每日最火火火项目(9.13)
以下是对这些项目的详细介绍: fishaudio 的 fish-speech: 基本信息:这是一种全新的语音技术解决方案,属于文本到语音(Text-to-Speech,TTS)技术范畴。技术特点: 多语言支持ÿ…...
力扣--649.Dota2参议院
Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参…...
vim 安装与配置教程(详细教程)
vim就是一个功能非常强大的文本编辑器,可以自己DIY的那种 ,不但可以写代码 ,还可编译 ,可以让你手不离键盘的完成鼠标的所有操作。 如果想要了解vim的的发展历史和详细解说,可以自行上网搜索,我主要是记录一…...
【WPF】Popup的使用
WPF(Windows Presentation Foundation)中的Popup控件用于创建弹出窗口,如工具提示、上下文菜单等。Popup控件本身并不直接显示任何内容,它需要一个子元素来显示实际的内容。 以下是一个简单的XAML示例,展示如何创建一…...
力扣刷题之2576.求出最多标记下标
题干描述 给你一个下标从 0 开始的整数数组 nums 。 一开始,所有下标都没有被标记。你可以执行以下操作任意次: 选择两个 互不相同且未标记 的下标 i 和 j ,满足 2 * nums[i] < nums[j] ,标记下标 i 和 j 。 请你执行上述操…...
黑马JavaWeb开发笔记16——请求(postman、简单参数、实体参数、@RequestParam映射)
文章目录 前言一、postman工具1. 引入2. 介绍3. 安装4. 使用 二、简单参数1. 原始方式(仅了解,以后的开发不会使用)2. SpringBoot方式3. 参数名不一致(RequestParam映射) 三、实体参数1. 简单实体对象2. 复杂实体对象 总结 前言 本篇文章是2…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
