MySQL根据binlog恢复数据

简介

本文介绍了使用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.hqwc.cn/news/231395.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QNX下多窗口叠加融合方案

目的:QNX下EGL多窗口叠加融合方案 环境: 系统:QNX 环境:8155/8295问题: EGL有时候在同一个进程中因为引入不同的功能,在不同的线程中进行窗口的绘制和融合,QNX下的融合方案,实测使…

Python之数据可视化

文章目录 一、1、matplotlib简单应用1.1、绘制带有中文标签和图例的图1.2、 绘制散点图1.3、绘制饼状图1.4、多个图形一起显示 一、 1、matplotlib简单应用 matplotlib模块依赖于numpy模块和tkinter模块,可以绘制多种形式的图形,包括线图、直方图、饼状…

文本三剑客

目录 grep awk 工具介绍 awk 命令 awk 常见的内置变量可直接用 awk 命令使用举例 打印磁盘已经使用情况 打印字符串 打印字符串确定文件有多少行 提取 ip地址 打印 /etc/passwd 所有用户名 打印多列内容 提取 /etc/passwd 以 root 开头的行 打印倒数第二行 当前…

MySQL 中的锁(二)

8.4. 意向锁 但是在上面的例子这里头有两个问题: 如果我们想对大楼整体上 S 锁,首先需要确保大楼中的没有正在维修的楼层,如果有正在维修的楼层,需要等到维修结束才可以对大楼整体上 S 锁。 如果我们想对大楼整体上 X 锁&#xf…

2023亚马逊云科技re:Invent,在开发者板块探究如何利用技术重塑业务

美国当地时间11月27日,一年一度的亚马逊云科技re:Invent大会在美国拉斯维加斯盛大开幕。这场全球云计算领域的前沿盛会,已连续12年成为引领行业的风向标。那么本次2023亚马逊云科技re:Invent大会又有哪些可玩、可看的新项目,下面就一起来瞧一…

Making Reconstruction-based Method Great Again for Video Anomaly Detection

Making Reconstruction-based Method Great Again for Video Anomaly Detection 文章信息: 发表于ICDM 2022(CCF B会议) 原文地址:https://arxiv.org/abs/2301.12048 代码地址:https://github.com/wyzjack/MRMGA4VAD…

Linux篇:文件管理

一、共识原理: 1. 文件内容属性,内容与属性都是数据,都要在磁盘中保存。 2. 文件分为打开的文件和没打开的文件。 3. 研究打开的文件:本质是研究进程和文件的关系,因为是进程负责打开文件。 4. 没打开的文件在存储介质…

C++:STL第一篇vector

目录 1.vector 的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator (迭代器)的使用 1.2.3 vector空间增长问题 1.2.4 vector的增删改查 1.2.5 vector 迭代器失效问题。(重点) 2.vector 深度刨析及模拟实…

每日一练2023.11.29——到底有多二【PTA】

题目链接: 到底有多二 题目要求: 一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其…

全国高校走进深算院:共话国产数据库产教融合生态建设

近日,由教育部高等学校计算机类专业教学指导委员会、全国高等学校计算机教育研究会主办,清华大学出版社、深圳市信息技术应用创新联盟承办的“2023全国高校走进信创企业研学活动”顺利举办。来自全国各地30余家高校的近80位院校领导、教师代表走进了深圳…

Zabbix“专家坐诊”第213期问答汇总

问题一 Q:Zabbix报错:Zabbix server is not running :the information displayed may not be current,是什么问题呢? A: 1、数据库软件问题导致导入的zabbix数据库不完整2、zabbix Server配置问题3、zabbix-server没…

干货:一文讲通Python爬虫的基本原理

Python中一个应用广泛的方向就是爬虫。 今天就给大家讲讲爬虫的原理,并举个小案例说明爬虫的流程。 1、什么是爬虫? 我们日常浏览的文字、图片、视频等数据是在别人服务器上的,通过网络传输到浏览器展示给我们看,那如果我们想把…