记录一次mysql数据库使用binlog实现数据回退操作

【细如狗】记录一次使用MySQL的Binlog进行数据回滚的完整流程 记录一次因误操作数据库导致全表数据被改,而使用MySQL的Binlog进行数据回滚的完整流程。 阅读详情

数据恢复需谨慎,生产数据库中的数据建议每天全库备份

恢复数据和数据表引擎有关, 二进制日志恢复的效果确实受存储引擎影响。推荐使用InnoDB。

对于不同引擎恢复建议

InnoDB可以直接使用二进制日志恢复

mysqlbinlog --no-defaults --stop-position=xxx binlog.000062 | mysql -u root -p

对于MyISAM

# 建议先备份,使用--force参数,并做好数据不一致的准备
mysql -u root -p --force < recovery.sql

# 或者转换为InnoDB后再恢复
ALTER TABLE admin_role ENGINE=InnoDB;

使用binlog恢复流程如下:

-- 查看所有表的引擎类型
SELECT table_name, engine 
FROM information_schema.tables 
WHERE table_schema = '数据库';

-- 查看特定表的引擎
SHOW CREATE TABLE 数据库.数据表;
查看 bin-log 是否开启,ON表示已开启
show variables like 'log_bin';

在这里插入图片描述

查询所有日志
show binary logs;

在这里插入图片描述

查看当前正在使用的二进制日志文件(即最新活跃的)
SHOW MASTER STATUS;

在这里插入图片描述

可操作性不大的查询日志方式(不推荐)

-- 查看所有二进制日志事件
SHOW BINLOG EVENTS;
-- 查看特定二进制日志文件的事件
SHOW BINLOG EVENTS IN 'binlog.000062';
查看日志记录 -未解码版本 
mysqlbinlog --no-defaults --start-datetime="2025-10-31 09:00:00" --stop-datetime="2025-10-31 09:50:00" d:/mysql-8.0.26-winx64/data/binlog.000062

其中
Write_rows: INSERT 操作
Delete_rows: DELETE 操作
Update_rows: UPDATE 操作

# 使用详细模式查看,会显示解码后的行数据
mysqlbinlog --no-defaults -v --base64-output=decode-rows --start-datetime="2025-10-31 11:00:00" --stop-datetime="2025-10-31 11:05:00" d:/mysql-8.0.26-winx64/data/binlog.000062

# 只恢复 oldage_assess 数据库的操作--database指定的数据库,--stop-position恢复该节点前的所有数据
mysqlbinlog --no-defaults --database=assess --stop-position=6463692 d:/mysql-8.0.26-winx64/data/binlog.000062 > d:/oldage_only_recovery.sql

--force忽略错误继续执行
mysql -u root -p assess --force < d:/oldage_only_recovery.sql

在这里插入图片描述

【面试八股总结】MySQL日志:undo log、redo log、binlog MySQL中存在三种日志: undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。 redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复; binlog (归档日志):是 Server 层生成的日志,主要用于数据备份和主从复制。 阅读详情

相关推荐

保姆级教程:用Fiddler+夜神模拟器搞定抖音App抓包(附SSL Pinning绕过实战)

本文提供了一套完整的移动端抓包解决方案,详细介绍了如何使用Fiddler和夜神模拟器进行抖音App抓包,并重点讲解了SSL Pinning绕过技术。通过Xposed框架和JustTrustMe模块的组合,实现高效抓包,适用于产品分析、竞品研究和安全测试等场景。

weixin_30855099的博客 423

MySQL日志之误删恢复数据

比如说,数据是在9月12日12:00插入的,那么我们看上方的所有binlog文件,可以看出插入语句应该保存在mysql-bin.000213文件中。比如说,数据是在9月12日12:00删除的,那么我们看上方的所有binlog文件,可以看出插入语句应该保存在mysql-bin.000213文件中。因为这些参数是用于解码binlog的,是让开发人员更方便看到binlog被解析之后的格式。目前有一些开源的工具,可以帮助我们解析binlog,并且自动生成binlog记录的操作的逆向操作。被误删的数据,如何恢复呢。

上善若泪 3177

UniApp 与 Taro 深度解析:如何根据项目需求选择最佳跨平台框架?

本文深度对比了UniApp和Taro两大主流跨平台开发框架。UniApp基于Vue生态,提供开箱即用的高效开发体验,尤其适合快速覆盖多端小程序;Taro则根植React范式,架构灵活,便于与现有React生态集成,更适合对性能和原生体验有高要求的复杂项目。文章结合团队技术栈、项目类型及性能需求,为开发者提供了清晰的选型指南。

snow3的博客 204

Mysql回退方法(binlog数据回退的具体方法)

数据库误操作后,利用binlog数据回退的具体方法

qq_42451281的博客 8046

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1600

基于FFmpeg与Nginx的大华摄像头实时视频Web接入方案

本文详细介绍了一种基于FFmpeg与Nginx的大华摄像头实时视频Web接入方案。该方案通过FFmpeg将摄像头RTSP协议流转换为浏览器友好的HLS格式,并利用Nginx进行高效分发,最终结合Video.js构建前端播放页面,实现无需插件的跨平台实时监控。方案具有免费、轻量、稳定、易于部署的特点,适合中小企业、个人开发者快速搭建内部监控或展示系统。

weixin_28040125的博客 346

数据库update、delete误操作,使用binlog2sql手动回退

数据库update、delete误操作,使用binlog2sql手动回退

TIANQIcode 4306

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。还原数据库时把序列取消勾选,选择不还原序列。因为还原表的同时,会自动将自增序列还原上去,此处勾选会导致数据库重复创建序列。点击还原数据库完毕后,可以看到序列仅有一个,没有出现重复序列。但此时的序列当前值是从1开始的,需要重置。点击菜单“其它”-》“序列”,可以看到有多个重复序列。

奋斗鱼 1043

mysql通过binlog恢复或回滚数据

mysql数据恢复和回滚

Interest1_wyt的博客 3万+

SAP-ML章<<<<第二节:物料账报错处理ABAP编程错误:RAISE_EXCEPTION>>>>

#SAP-ML章<<<<第一节:物料账报错处理ABAP编程错误:RAISE_EXCEPTION>>>> 1.物料账报错提示: ABAP编程错误:RAISE_EXCEPTION ABAP程序:SAPLFCML4H_RUN_PRICES应用组件CO-PC-ACT 2. 物料账报错背景: CKMLCP运行结算时 3. 解决方案: 通过DEBUG查看错误的地方 OKTZ:分析原因为:可能打包或者配置传输时弄错 ...

SAP.David.Gao的博客 1858

3、无限维系统理论中的算子与半群:概念、定理及应用

本博文深入探讨了无限维系统理论中的两个核心概念:里茨谱算子与卢默-菲利普斯定理。文章首先介绍了里茨基的定义与性质,分析了谱、预解集及特征值在无限维系统中的特性,并详细阐述了里茨谱算子的条件及其生成C0-半群的能力,结合阻尼欧拉-伯努利梁模型展示了其应用。随后,文章介绍了卢默-菲利普斯定理及其推论,通过多个偏微分方程实例(如一阶方程、柔性梁、波动方程和扩散问题)说明如何利用该定理判断算子是否生成压缩半群。此外,还强调了状态空间选择和边界条件对系统适定性的重要影响,并总结了相关问题的解决步骤与方法。

flink9streamer的博客 148

binlog文件转译成sql文件(支持误删、误更新的回退语句操作)

续上,将binlog转化成sql的程序

qq_42451281的博客 3162

(8)(8.19) GPIOs

Ardupilot官网关于《Copter》的翻译 —《(8.19) GPIOs》。

无人机开发(开源Ardupilot) 1万+

mysql binlog 回退_MYSQL Binglog分析利器:binlog2sql使用详解

大部分使用mysql的业务也都会开启binlog,用以记录数据库的更新操作。当然binlog的格式大家也都比较清楚,分别是statement、mixed、row模式。针对row格式的binlog,它以二进制形式记录相应的SQL,通过编辑器打开无法知道具体的SQL是什么。当然,我们也可以通过mysqlbinlog分析,但分析结果不利于我们做数据的回滚和redo。前段时间同事分享了一个小工具binlo...

weixin_33489093的博客 369

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

我不小心把生产的数据改错了!同事帮我用MySQL的BinLog挽回了罚款

之前在生产做修改数据的时候不小心改错了一行数据,本来以为会被通报批评,但是同事利用binlog日志查看到了之前的旧数据,并且帮我回滚了,学到了,所以写了一篇binlog的文章分享给大家。MySQL的Binary Log(简称binlog)是一种重要的数据库日志系统,用于记录数据库服务器上所有更改数据的活动。Binlog是MySQL数据库中的一种的日志文件,它主要记录了对数据库数据进行修改的所有操作事件。

编码人生 947

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

log解析工具 px4_一文看懂MySQL Binlog解析工具--binlog2sql

概述最近碰到某个表需要做数据回退,如果回退整个数据库动作又太大,所以用了binlog2sql来实现,这里先介绍一下binlog2sql的相关内容。binlog2sql是一个开源的Python开发的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,以便做数据恢复。gihub:https://github.com/danfengcao/bi...

weixin_31480911的博客 223

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MySQL数据库使用binlog恢复删除的表数据

在mysql数据库中创建一张表,并填充一条数据,做测试。 CREATE TABLE `binlog_Test` ( `id` int(11) NOT NULL, `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 向表中插入一条数据 INSERT INTO `MySQ.

KoVaVo 531

MySQL Binlog数据恢复与回滚实战:从原理到精准操作指南

在数据库管理与运维领域,数据安全与容灾恢复是核心议题。二进制日志(Binlog)作为MySQL记录数据变更的关键机制,其核心原理在于按序记录所有数据修改事件,为数据复制与恢复提供了底层支持。这项技术的核心价值在于能够实现数据的精准回溯与修复,有效应对误删除、错误更新等常见数据故障场景。尤其在ROW日志格式下,Binlog能够记录数据行变更前后的完整镜像,确保了恢复操作的数据一致性。基于Binlog的恢复流程通常需要结合全量备份,通过mysqlbinlog工具解析并重放(或逆向回滚)特定时间点或位置点之间的日

weixin_30897079的博客 443

mysqlbinlog工具_一文看懂MySQL Binlog解析工具--binlog2sql

概述最近碰到某个表需要做数据回退,如果回退整个数据库动作又太大,所以用了binlog2sql来实现,这里先介绍一下binlog2sql的相关内容。binlog2sql是一个开源的Python开发的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,以便做数据恢复。gihub:https://github.com/danfengcao/bi...

weixin_39959369的博客 356

<通俗易懂版> mysql通过binlog恢复数据(不能回滚)

近期项目开发中出现了一次误删的操作,于是在网上查找了mysql的回滚操作,这里记录一下。简单说下binlog,binlog是mysql中的二进制日志,其记录了数据库发生更改的各种变化。所以通过binlog可以回滚或者恢复失误的操作。恢复一般使用mysqlbinlog命令,该命令是mysql自带的,使用简单。其运行的本质是将日志记录中的事件再次执行一遍。回滚一般要借助第三方工具binlog2sql,其回滚的本质是解析日志文件生成要回滚的sql,我们拷贝执行该sql即可。

qq_53808097的博客 3266

mysql redolog binlog 之二阶段提交

文章目录一:什么是redolog和binglog?二:redolog和binlog可以相互替代或者只保留其一吗?1. 可以使用binlog替代redolog进行数据恢复吗?2. 可以只适用redolog而不是用binlog吗?三:为什么redolog和binlog要进行二阶段提交?四:二阶段提交步骤五、redolog和binlog二阶段提交与redolog和binlog的顺序提交是否真的有区别?六...

welcome to daijiguo's blog 6744
上一篇: echarts 3d地图解决鼠标移动到地图中非区域块的空白区域时,触发特定事件
下一篇: kingbase数据库解决执行更新字段时锁表问题
if时光重来
博客等级 码龄8年 248粉丝 217原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值