MSQL误操作delete之后的数据恢复
1.查看binlog功能是否开启
show variables like ‘%log_bin%’;
如果为log_bin为ON说明可以恢复,如果为OFF说明没有开启binlog,也没有预先生成回滚SQL就无法恢复,这种情况就没办法了
2.根据操作时间查找binlog
一般放在mysql/data里面,找到最新的一个mysql-bin.XXXX(比如我的就是叫 mysql-bin.000051),记住误操作的时间,通过mysqlbinlog命令的–start-datetime参数快速定位数据位置。比如误操作时间为2022-07-20 15:50,解析命令就是:mysqlbinlog -vv --start-datetime=‘2022-07-20 15:50:00’ mysql-bin.000051|more
然后查找解析内容里删除的标记
通过上面的方法我们应该可以找到被删除的数据在binlog中的起始和终止位置点,这样我们就可以保证在这两个位置之间只有我们需要的待恢复的数据,而没有其他数据。
3.将binlog里的delete语句转化为insert语句
Binlog是二进制文件,我们可以先把待恢复数据导出为可阅读文本:
mysqlbinlog -vv --start-position=66801338 --stop-position=67194066 mysql-bin.000051 |grep ^“###” >/tmp/bin_data.sql
然后将里面的delete语句转化为insert语句,可以通过下面的语句实现转化:
cat /tmp/bin_data.sql | sed -n ‘/###/p’ | sed ‘s/### //g;s//*./,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;’ |sed -r 's/(@17.),/\1;/g’ | sed ‘s/@1=//g’| sed ‘s/@[1-9]=/,/g’ | sed ‘s/@[1-9][0-9]=/,/g’ > mysqllogOK.sql
4.把转化好的SQL语句插入到mysql表中
转化后的SQL语句开头多了个;要手动去掉,然后执行sql脚本插入数据就OK了
MSQL误操作delete之后的数据恢复相关推荐
- mysql从挂了数据怎么恢复_详解MySQL误操作后怎样进行数据恢复
一.开启binlog. 首先查看binlog是否开启 mysql> show variables like "log_bin"; +---------------+----- ...
- phpstudy mysql恢复数据_MySQL_详解MySQL误操作后怎样进行数据恢复,一、开启binlog。
首先查看binlo - phpStudy...
详解MySQL误操作后怎样进行数据恢复 一.开启binlog. 首先查看binlog是否开启 mysql> show variables like "log_bin"; +- ...
- mysql怎么防止误操作_MySQL数据库防止人为误操作的实例讲解
有不少开发人员在操作MySQL数据库的时候都遇到过误操作的情况,例如更新数据库的时候update语句忘记加上where条件,就会造成极为悲剧的结果.本文就针对防止MySQL数据库误操作的方法做出如下详 ...
- SQLServer数据库误操作如何恢复
总目录 文章目录 总目录 前言 一.恢复数据实例 1.创建初始数据 2.保证数据恢复的前提条件 前提1 - 数据库创建时便已设置恢复模式为完整 前提2 - 至少做过一次完整的备份 3.模拟不小心误操作 ...
- mysql+误操作怎么恢复_Mysql误操作恢复流程
一.开启binlog. show variables like 'log_bin'; #vim /etc/my.cnf 在[mysqld]中加入 log-bin = ...
- mysql router是什么_数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作...
摘要:墨天轮数据库周刊第28期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档.本周分享 开发者最喜爱的数据库是什么?阿里云脱口秀爆聊程序员转型:MySQL update误操作后进行数据 ...
- 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表……
文章来源:墨天轮社区 https://www.modb.pro/db/26343 摘要:墨天轮数据库周刊第28期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档.本周分享 开发者最喜爱的 ...
- mysql 清除分区数据恢复_MySQL 误操作后数据恢复(update,delete忘加where条件)【转】...
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句 写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者 ...
- oracle操作错误还原,Oracle delete误操作数据恢复(BBED)
Oracle delete误操作数据恢复(BBED) 在Oracle中,表数据被错误执行了delete,并 已 提交,如何找回数据呢? 常规的修复方法可以想到 闪回.Rman.impdp . DG . ...
最新文章
- 能否把指针变量本身传递给一个函数?
- 快速排序--Python实现
- R开发(part3)--概率基础和R语言
- Docker精华问答 | Consul是什么?
- 华为服务器型号2285,华为服务器2285磁盘阵列设置
- 克鲁斯卡尔重构树小结
- SSM编写http接口返回JSON格式数据
- c语言怎样设计程序界面,「分享」C语言如何编写图形界面
- 就算不偷盗,也让你看看计算机里常用的有那些软件--常用软件序列号
- 最齐全的装饰贴图素材,速来收藏
- 企业微信登录本地调试
- CentOS配置samba文件共享服务
- QML 语法(Syntax)
- 微博Jquery案例
- java版溺尸掉三叉戟吗_我的世界1.13通用水鬼塔经验农场(刷三叉戟农场)【内有存档】...
- mysql php dll_php_pdo_mysql.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
- php randomcode 函数,MyRandomCode.php
- 将输入值为非数字的字符替换为空
- STC8学习4 ——PWM波形应用
- FreeModbus开源协议栈的移植和详解(三)- RTU协议代码分析