【mysqlbinlog 恢复数据】

news2024/9/28 15:30:20

不小心把数据删掉了 
首先要拿到binlog文件 命令行执行

/usr/local/mysql/bin/mysqlbinlog --base64-output=decode-rows --start-datetime="2023-05-19 09:01:32" --stop-datetime="2023-05-19 09:01:35" -v /Users/zylong/Downloads/mysql-bin.003178 --result-file=/Users/zylong/desktop/update.txt

/usr/local/mysql/bin/mysqlbinlog是你的mysqlbinlog所在的目录 如果你设置了环境变量可以不加全路径

 --base64-output=decode-rows base64输出行

 --start-datetime --stop-datetime 起止时间 具体去看binlog里想恢复的时间 如下图的230519 9:01:33 上述两个时间遵循左开右避原则
也可以使用at 具体到行 可以自行百度看看

 -v /Users/zylong/Downloads/mysql-bin.003178   -v 你的目标文件路径

 --result-file= 输出到指定文件

以下是logbin文件信息

执行上述命令后打开目标txt文件 显示大概如下

cat /Users/zylong/desktop/update.txt


 

然后 执行以下命令

cat /Users/zylong/desktop/update1.txt | sed -n '/### /p;/# at/p' | sed 's/### //g;s/DELETE FROM/INSERT INTO/g;s/WHERE/(ID, departname, description, parentdepartid, org_code, org_type, mobile, fax, address, depart_order, home_dep, is_contrast, total_contrast_number, total_observer_number, total_matched_number, contrast_mirror, current_contrast_number, illness, region_id, is_self_control, main_logo, is_bindable_wx, sms_template, sms_request_template, is_case_center)  VALUES(/g;s/@1=//g;s/[0-9]=//g;s/@[0-9]/,/g;s/@/,/g;s/# at/);\n# at/g' | sed -e '/# at/d' >  /Users/zylong/desktop/t6.txt

以上命令是sed 替换文本操作 不会的可以自己去看看 其实就是替换文本没啥难的 随便看看就明白了 

以上分五部分依次是源文件 显示行 替换操作 删除操作 目标文件

/Users/zylong/desktop/update1.txt 源文件

其中红色以及黄色标注中的;表示匹配多个 如果你还有额外的需求可以再添加一个匹配或规则

sed -n '/### /p;/# at/p'

-n 表示源文件中显示的行 我们只需要sql相关的文件 所以只需要/### 开头的文件 但是我们替换的时候需要在每个sql命令后加上); 所以用到了/# at开头的行

1,s/### //g;

2,s/DELETE FROM/INSERT INTO/g; 

3,s/WHERE/(ID, departname, description, parentdepartid, org_code, org_type, mobile, fax, address, depart_order, home_dep, is_contrast, total_contrast_number, total_observer_number, total_matched_number, contrast_mirror, current_contrast_number, illness, region_id, is_self_control, main_logo, is_bindable_wx, sms_template, sms_request_template, is_case_center) VALUES(/g;

4,s/@1=//g;

5,s/[0-9]=//g;

6,s/@[0-9]/,/g;

7,s/@/,/g

8,s/# at/);\n# at/g; 

2,3 操作其实就是连成一个 insert into xxx (字段1,字段2...) values(

4 把第一个参数前的数据完全替换 

5替换以数字开始=结尾的数据 替换成空字符

6,7 将@以及数字替换成,

8,将/# at 替换成分);# at \n表示换行 /g表示匹配多个 下同 其中/# at后面的/表示分开符号 如果要使用/请先转译

sed -e '/# at/d'  删除包含“# at”的行

上述操作输出后大概就是这样

        insert into xxx (字段1,字段2...) values('1','2',...);

        insert into xxx (字段1,字段2...) values('1','2',...);

> 表示输出到目标文件

/Users/zylong/desktop/t6.txt 目标文件

复制上述输出文件的内容 运行之后数据就恢复了
 

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

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

相关文章

动态规划-状态机模型

大盗阿福 题目 链接:https://www.acwing.com/problem/content/1051/ 阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。 这条街上一共有 N N N 家店铺,每家店中都有一些现金。 阿福事先调查得知,只…

chatgpt赋能Python-python3_9怎么下载

Python 3.9: 从哪里下载以及如何安装 Python是一种高级编程语言,被广泛使用于数据科学、人工智能、Web开发等领域。Python的最新版本是Python 3.9,它带来了一些新的特性和改进。对于那些希望尝试Python 3.9的人来说,了解如何下载和安装是很重…

chatgpt赋能Python-python3下载文件

Python3下载文件:从入门到实践 在Python编程语言中,下载文件是一个常见的需求。无论你是想下载图片、视频、文本文件或者其他类型的文件,Python都提供了强大的工具来实现这一操作。在本文中,我们将深入探讨如何使用Python3来下载…

pwn入门(二)环境搭建

一.前言 在上一篇中介绍了一下pwn和一些前置知识,但是呢以我的感觉,我觉得ctf还是得多做题的,所以呢,我选择边做边学,我觉得这样可以快速熟悉pwn还可以有成就感。 这一篇就是搭建环境的分享,同时还有大佬告…

【问题记录】USB monitor抓包工具显示音频数据CRC error

一,简介 在进行UAC2.0调试的过程中,使用USB monitor抓包工具抓取音频流数据出现数据错乱现象,本文对该问题进行分析记录。 二,问题记录及分析过程 2.1 先看下正常的抓包数据是什么样子: 从上图可以看出,…

VMware ESXi 6.0 多网卡接入 多网段绑定 虚机接入不同网段

网卡要与对应网段的网络联通。不同的网卡接入不同网段的网络。要为vmware esxi 6 的多个虚机配置不同网段的ip地址,首先选择主机对应的网口分别插上处于在不同网段的网线。 配置管理网络 多个网口接入,只可以配置一个管理网络,就是只有一个网…

基于XGBOOST模型预测货物运输耗时 - Part 2 通过方差分析了解文本型变量与数值型目标变量的关系

在分析数据之前,我们需要剔除异常值的影响,也就是在某个分组情况下,标准差过大(标准差越大,证明情况越不稳定),如果标准差比较小,就算是最小值和最大值差的比较大,我也认…

chatgpt赋能Python-python3下载numpy包

Python3 下载numpy包教程 如果你是一名Python开发者,那你一定不会陌生于NumPy。NumPy是Python中的一个科学计算库,它主要用来处理数组和矩阵运算。本文将会教你如何在Python3中下载NumPy库。 步骤一:确认你已经安装了pip 如果你使用的是Py…

chatgpt赋能Python-python3__2__3

Python323 - 一个强大的编程工具 介绍 Python323 是一种高级编程语言,最初由 Guido van Rossum 在 1989 年创建。Python 3.2.3 是 Python 3 的其中一个发行版,它拥有很多新特性和改进。Python323 可以运行在多种操作系统上,包括 Windows、L…

redis哨兵监控leader和master选举原理

当一个主从配置中的master失效后,sentinel可以选举出一个新的master,用于自动接替原master的工作,主从配置中的其他redis服务器自动指向新的master同步数据。是如何具体做的呢,主要有以下4步。 一般建议sentinel 采取奇数台. 1.SDown 主观下…

Day43【动态规划】1049.最后一块石头的重量 II、494.目标和、474.一和零

1049.最后一块石头的重量 II 力扣题目链接/文章讲解 视频讲解 还是需要转化为 0-1 背包问题:物品装入背包,求装入的最大价值(每个物品至多装入一次) 要把01背包问题套到本题上来,需要确定 背包容量物品价值物品重…

分布式消息中间件RocketMQ的应用

RocketMQ 应用 所有代码同步至GitCode:https://gitcode.net/ruozhuliufeng/test-rocketmq.git 普通消息 消息发送分类 ​ Producer对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果。 同步发送消息 ​ 同步发送消息是指,P…

Win11或Win10重置电脑提示“找不到恢复环境”

想要重置电脑缺提示找不到恢复环境 查看是否开启功能 按住“winx”选A管理员运行终端,输入reagentc /info。 如果信息结果如下: Windows RE 状态: DisabledWindows RE 位置:引导配置数据(BCD)标识符: cedd8faa-707a-11ed-ad72-a8056da9f4d6…

头歌计算机组成原理实验—运算器设计(3)第3关:4位快速加法器设计

第3关:4位快速加法器设计 实验目的 帮助学生掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。 视频讲解 实验内容 利用前一步设…

Learning C++ No.23【红黑树封装set和map】

引言 北京时间:2023/5/17/22:19,不知道是以前学的不够扎实,还是很久没有学习相关知识,对有的知识可以说是遗忘了许多,以该篇博客有关知识为例,我发现我对迭代器和模板的有关知识的理解还不够透彻&#xff…

音视频源码调试前准备vs2019+qt5.15.2搭建可调试环境

安装vs2019qt,并且在windows环境上安装ffmpeg,尝试使用qtcdb进行调试,尝试使用vs2019加载qt的程序。 安装VS20195.12.2qt环境,并进行测试。 1:安装Visual Studio 2019, a.从官网下载,或者vs2019社区版本下载地址 ht…

SNAP软件处理Sentinel-2 L2A数据为hdr或者tif文件

1.打开Sen2Cor插件处理好的或者下载好的L2A文件 若不知道如何将下载的L1C数据处理为L2A级数据可查看该篇博文 Sentinel-2数据下载及处理_dropoutgirl的博客-CSDN博客 在Bands文件夹下少了B10波段栅格文件: 这主要是因为波段10是卷云波段,需要的大气顶部&#xff0…

顺序表之线性表(难度:✨)

1.线性表 线性表呈现出一条线性,用指针把一块一块的内存连接起来。 其余还有树型结构,哈希结构,图结构。 线性表分为: 顺序表链表栈队列字符串 1.2顺序表 顺序表就是数组,但在数组的基础上,从头开始存。…

地下车库CO传感器报警系统

前言 在现代城市中,地下车库已经成为了不可或缺的交通设施。然而,在地下车库中,由于车辆尾气等因素,很容易出现CO中毒的风险,给车库内的人员带来威胁。本文将对地下车库CO传感器报警系统进行介绍和分析,包…

21级计科专业计算机组成原理实验考试(体验)

在使用VC6.0软件时,为了进入调试模式,需要先点击【Build】,再点击( ) A. BuildExecute B. Go C. Execute D. Compile 在使用VC6.0软件进入调试模式后,点击【View】→【Debug Windows】后的( &…