MySQL根据binlog恢复数据

news2025/1/20 5:47:32

简介

本文介绍了使用mysqlbinlog导出数据,根据binlog恢复数据,和导出数据时报需要super权限的解决方法。

环境

MySQL: 5.7.40

说明

MySQL的binlog是数据库服务器在运行过程中产生的日志文件,记录了数据库增删改的操作,可用于恢复和故障排错,在使用binlog前,请确保mysql启用了binlog

正文

一、排查并查找binlog的日志的存储位置

在mysql中执行以下命令检查mysql是否启用binlog,若为 “ ON ” 则为开启,“ OFF ” 为未开启 

show variables like 'log_bin'

开启binlog日志,Linux中找my.cnf文件,默认在 “ /etc/my.cnf ” 路径下,Windows找my.ini文件,默认在安装目录下,我们是linux中,如下图

“ log-bin ” 配置了路径就代表开启了binlog日志,mysql-bin的默认路径为/var/lib/mysql/目录下

“ innodb_data_home_dir = /www/server/data ”,这个是和innodb相关的数据的存储路径,也是mysql的数据主目录,我们的binlog日志文件就在这个下面

二、查找mysqlbinlog命令存储位置

“ mysqlbinlog ” 命令的位置在安装目录的bin文件夹下,我们需要用此命令才能打开binlog

使用以下命令查看mysql安装位置 

which mysql

切换到/usr/bin/文件夹下使用“ ll ”查看mysql指向的文件夹,如下图

“ mysqlbinlog ”命令存储位置 /www/server/mysql/bin/


下面进入主题

一、为方便排查,我们导出文件sql文件

/www/server/mysql/bin/mysqlbinlog  
--database=xx --start-datetime="2023-11-23 19:00" 
--stop-datetime="2023-11-24 14:12"  
www/serser/data/mysql-bin.000022 > /root/000022.sql

说明:导出xx数据库,时间起点:2023-11-23 19:00,时间结束点:2023-11-24 14:12 的mysql-bin.000022的binlog日志转成000022.sql文件并存储到root目录下

还可以根据位置点的方式来导出,这种导出最精确

/www/server/mysql/bin/mysqlbinlog  
--database=xx --start-position=55079756
--stop-position=55081588
www/serser/data/mysql-bin.000022 > /root/000022.sql

注意:如果执行导出时发现报错需要super权限

you need (at least one of) the SUPER privilege(s) for this operation

解决办法,先查看登录数据库的账户权限

select user,Super_priv from mysql.user;

赋予super权限

update mysql.user set Super_priv='Y' where user='test_db_user';

刷新权限

flush privileges;

然后即可执行导出命令

打开下载到window后的000022.sql文件 

我们恢复的方式就是找到错误操作的数据然后执行对应的sql进行还原,也可以根据位置点或时间区间还原,但一定要确保还原后的数据是正确的,特别要小心仔细别写错了

举个例子:

一、根据位置区间或时间区间批量恢复,以下恢复以位置区间为例

/www/server/mysql/bin/mysqlbinlog --start-position=55079756 --stop-position=55081557 --database=xx /www/server/data/mysql-bin.000022|mysql -u用户名 -p密码 -v 数据库名

解释:恢复数据库=xx,位置起始点=55079756,结束点=55079757 区间内的数据,-v 表示执行此命令,执行后的截图我就不发了,就是一条sql下面一条set

二、手动恢复

通过上图我们发现在23-11-24 14:34:26秒,删除了ID为184的acc_business_bills数据,那我们就需要找到并执行acc_business_bills表的ID=184的这条数据的新增sql进行还原通过  

 

我们发现这条数据是在 23-11-24 12:19:56秒创建的,因此复制下来执行就还原了

注意:一定要确保这条sql在删除前是没有进行更新的(继续排查binlog,排查时间段就是 “ 23-11-24 12:19:56 至 23-11-24 14:34:26 ” 这个时间区间),否则新增后的数据也是不正确的

 

完成 

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

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

相关文章

YOLOv5独家原创改进:自研独家创新MSAM注意力,通道注意力升级,魔改CBAM

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用; 推荐指数:五星 MSCA | 亲测在多个数据集能够实现涨点,对标CBAM。 在道路缺陷检测任务中,原始ma…

5.如何利用ORBSLAM3生成可用于机器人/无人机导航的二维/三维栅格地图--以octomap为例

1 octomap的安装及官方文档 这里我们用ROS自带的安装方式即可: sudo apt install ros-melodic-octomap-msgs ros-melodic-octomap-ros ros-melodic- octomap-rviz-plugins ros-melodic-octomap-server 如上图就是安装成功了: 如果安装失败了,…

机器学习——决策树

1.决策树 2.熵(不确定程度) 3.信息增益 & 信息增益比 3.1 信息增益 & 信息增益比 的 概念 3.2 案例解释说明 3.2.1数据集说明 3.2.2计算 4.&#x…

VUE语法-ref和reactive响应式数据引用

1、响应式概述 在vue中定义一个参数,当这个参数在使用中发生了变化,在页面中对这个数据应用的地方都会同步的发生变化,这个就是数据响应式。 2、创建一个非响应式的参数 该程序中采用的是VUE3的用法: 1、在程序中定义了一个局…

【内网安全】搭建网络拓扑,CS内网横向移动实验

文章目录 搭建网络拓扑 ☁环境CS搭建,木马生成上传一句话,获取WebShellCS上线reGeorg搭建代理,访问内网域控IIS提权信息收集横向移动 实验拓扑结构如下: 搭建网络拓扑 ☁ 环境 **攻击者win10地址:**192.168.8.3 dmz win7地址&…

开源免费跨平台数据同步工具-Syncthing

Syncthing是一款开源免费跨平台的文件同步工具,是基于P2P技术实现设备间的文件同步,所以它的同步是去中心化的,即你并不需要一个服务器,故不需要担心这个中心的服务器给你带来的种种限制,而且类似于torrent协议&#x…

视图层、模板(补充)

视图层 响应对象 响应---》本质都是 HttpResponse HttpResponse---》字符串render----》放个模板---》模板渲染是在后端完成 js代码是在客户端浏览器里执行的模板语法是在后端执行的redirect----》重定向 字符串参数不是是空的状态码是 3开头JsonResponse---》json格式数据 …

软著项目推荐 深度学习卷积神经网络的花卉识别

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基…

JVM——产生内存溢出原因

目录 1.产生内存溢出原因一 :代码中的内存泄漏1.案例1:equals()和hashCode()导致的内存泄漏问题:**正常情况**:**异常情况:**解决方案: 2.案例2:内部类引用外部类问题:解决方案&…

振南技术干货集:各大平台串口调试软件大赏(2)

注解目录 (串口的重要性不言而喻。为什么很多平台把串口称为 tty,比如 Linux、MacOS 等等,振南告诉你。) 1、各平台上的串口调试软件 1.1Windows 1.1.1 STCISP (感谢 STC 姚老板设计出 STCISP 这个软件。&#xf…

MySQL 中的锁(一)

MySQL 中的锁 按照 MySQL 官方的说法,InnoDB 中锁可以分为: 可见,InnoDB 中锁非常多,总的来说,可以如下分类: 这些锁都是做什么的?具体含义是什么?我们现在来一一学习。 8.1. 解…

Nginx性能调优策略

Nginx是一个高性能的Web服务器和反向代理服务器,常用于处理高并发的请求。以下是一些常见的Nginx性能调优策略: 一、调整worker_processes和worker_connections 在Nginx配置文件中,可以通过worker_processes和worker_connections参数来调整w…

CLIPTokenizer.from_pretrained本地加载

以"openai/clip-vit-large-patch14"为例,原代码为: self.tokenizer CLIPTokenizer.from_pretrained(“openai/clip-vit-large-patch14”) self.transformer CLIPTextModel.from_pretrained(“openai/clip-vit-large-patch14”) 但我连不到外…

ArkTS-取消标题与自定义标题栏

文章目录 取消标头自定义标题栏导入Resources自定义跳转动画关于底部tabBar导航文本输入(TextInput/TextArea)自定义样式添加事件可以是onChange可以是onSubmit List列表组件设置主轴方向 网格布局服务卡片-获取地理位置页面获取地理位置服务卡片获取地理位置 可以先看看&#…

移民同步进行|企业高管自费赴美国奥本大学访学

K经理申请了美国杰出人才移民,已经获批I-140,正在排期中,尚未获得绿卡。为了使孩子同步美国学制,K经理希望先以访问学者身份带孩子出国接受免费公立教育。最终我们落实了奥本大学的职位,申请人及孩子顺利获签出国&…

VSCODE+QEMU+WSL调试RISCV代码(SBI、kernel)

前言 最近在对RISC-V架构比较感兴趣,正好手头有《RISC-V体系结构编程与实践》的书籍,就打算跟随笨叔将这块的知识学习起来,最开始当然是需要搭建一个基础的实验平台,本来笨叔是贴心的提供了VMare的环境,奈何天生叛逆的…

Matlab下载许可证文件 教程(在账号有许可证的前提下)

文章目录 Part.I IntroductionPart.II 许可证文件过期解决方案Chap.I 使用 Internet 自动激活Chap.II 在不使用 Internet 的情况下手动激活 Part.I Introduction 本文主要介绍,在 Mathwork 账号有许可证的前提下,下载许可证的操作流程。 好久没有用 Mat…

OSCP系列靶场-Esay-1

总结 getwebshell : ftp可匿名登录 → 发现隐藏文件夹 → 发现ssh密钥 → 猜解ssh用户名 → ssh密钥登录 提 权 思 路 : 发现suid权限文件 → cpulimit提权 准备工作 启动VPN 获取攻击机IP → 192.168.45.191 启动靶机 获取目标机器IP → 192.168.179.130 信息收集-端口扫…

Android自定义瀑布流文字展示

在历史搜索功能中&#xff0c;我们常用到一个瀑布流展示控件&#xff0c;用来展示我们的搜索记录&#xff0c;所以就自定义一个吧&#xff01; 布局中代码示例 <com.example.mymodularization.measure.LinearCustomandroid:id"id/ll"android:layout_width"wr…

基于深度学习的点云三维目标检测方法综述

论文标题&#xff1a;基于深度学习的点云三维目标检测方法综述 作者&#xff1a;郭毅锋&#xff11;&#xff0c;&#xff12;†&#xff0c;吴帝浩&#xff11;&#xff0c;魏青民&#xff11; 发表日期&#xff1a; 2023 1 阅读日期 &#xff1a;2023 11 29 研究背景&…