mysql update 忘加 where 文件恢复
前提条件:
mysql :data_row_format=row
mysql> show variables like '%image%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| binlog_row_image | FULL |
+------------------+-------+
实例操作过程=========================
create table student(id int,name varchar(20),class int ,score varchar(20));
insert into student values(1,'a',1,'failure');
insert into student values(3,'b',1,'failure'),(5,'c',2,'failure'),(7,'d',2,'failure');
insert into student values(9,'e',3,'failure'),(11,'f',3,'failure'),(13,'g',4,'failure');
insert into student values(15,'h',4,'failure');
mysql> select * from student;
+----+------+-------+---------+
| id | name | class | score |
+----+------+-------+---------+
| 1 | a | 1 | failure |
| 3 | b | 1 | failure |
| 5 | c | 2 | failure |
| 7 | d | 2 | failure |
| 9 | e | 3 | failure |
| 11 | f | 3 | failure |
| 13 | g | 4 | failure |
| 15 | h | 4 | failure |
+----+------+-------+---------+
8 rows in set (0.00 sec)
mysql>
mysql>
mysql>
mysql> update student set score=35;
Query OK, 8 rows affected (0.01 sec)
Rows matched: 8 Changed: 8 Warnings: 0
mysql>
mysql>
mysql> select * from student;
+----+------+-------+-------+
| id | name | class | score |
+----+------+-------+-------+
| 1 | a | 1 | 35 |
| 3 | b | 1 | 35 |
| 5 | c | 2 | 35 |
| 7 | d | 2 | 35 |
| 9 | e | 3 | 35 |
| 11 | f | 3 | 35 |
| 13 | g | 4 | 35 |
| 15 | h | 4 | 35 |
+----+------+-------+-------+
8 rows in set (0.00 sec)
------恢复步骤:
1) /usr/local/mysql/bin/mysqlbinlog -v -v --base64-output=decode-rows /data/mysql/3306/log/mysql-bin.000006 | grep -B15 -A 10 -i 'failure'
2) /usr/local/mysql/bin/mysqlbinlog -v -v --base64-output=decode-rows /data/mysql/3306/log/mysql-bin.000006 |sed -n '/# at 351/,/COMMIT/p' >/tmp/1.txt
3) sed '/WHERE/{:a;N;/SET/!ba;s/\([^\n]*\)\n\(.*\)\n\(.*\)/\3\n\2\n\1/}' 1.txt | sed -r '/WHERE/{:a;N;/@4/!ba;s/### @2.*//g}'|sed 's/### //g;s/\/\*.*/ ,/g' | sed '/WHERE/{:a;N;/@1/!ba;s/ ,/;/g};s/#.*//g;s/COMMIT ,//g' | sed '/^$/d' > recover.sql
4)sed -i 's/@1/id/g;s/@2/name/g;s/@3/class/g;s/@4/score/g' recover.sql
5) sed -i -r 's/(score=.*),/\1/g' recover.sql
6) mysql > source </tmp/recover.sql
mysql update 忘加 where 文件恢复的更多相关文章
- delete、update忘加where条件误操作恢复过程演示
update.delete没有带where条件,误操作,如何恢复呢? 我现在有一张学生表,我要把小于60更新成不及格. mysql> select * from student; +----+- ...
- MySQL 误删数据、误更新数据(update,delete忘加where条件)
MySQL 误操作后数据恢复(update,delete忘加where条件) 关键词:mysql误删数据,mysql误更新数据 转自:https://www.cnblogs.com/gomysql/p ...
- MySQL 误操作后数据恢复(update,delete忘加where条件)
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...
- MySQL 误操作后数据恢复(update,delete忘加where条件)【转】
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句 写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者 ...
- Linux 上通过binlog文件 恢复mysql 数据库详细步骤
一.binlog 介绍 服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlb ...
- MySQL 利用frm文件和ibd文件恢复表结构和表数据
文章目录 frm文件和ibd文件简介 frm文件恢复表结构 ibd文件恢复表数据 通过脚本利用ibd文件恢复数据 通过shell脚本导出mysql所有库的所有表的表结构 frm文件和ibd文件简介 在 ...
- MYSQL数据库根据data文件中的.frm和ibd文件恢复单表数据
数据库误操作,把表的字段删除了,关键是被删除的字段的数据很重要,现在想要恢复数据,下面说说是怎么操作的. 数据库只剩.frm和.ibd文件了,按照网上的做法分如下两步来进行:一.找回表结构,二.找回数 ...
- MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据
记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per ...
- 利用日志文件恢复MYSQL数据库
利用日志文件恢复MYSQL数据库 650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic ...
随机推荐
- v$、v_$、gv$之间的关系
本次实验测试,oracle数据库视图中v$,v_$,gv$之间的关系 总结: v_$是动态性能视图,通过sql查询数据库基表返回记录.例如,v_$database对象是视图类型,可对其它用户授权访问: ...
- MySQL内置功能
视图 # 创建视图 create view course2teacher as select * from course inner join teacher on course.teacher_id ...
- JavaBasic_02
Java的基础框架 3W:What How Why What:一个东西是什么,具备什么样的功能 怎么用 How: 怎么做?功能如何实现 读源代码(jdk)->学习很多,优雅的编程技巧建立在wha ...
- linux命令行总结给自己看的版本
复制 cp -r /src /dst 查看硬盘容量 df -h 重命名: mv /原来的 /现在的
- ROI-Align解决方案
https://yq.aliyun.com/articles/558181 Mask R-CNN与Faster R-CNN相似,Faster R-CNN是two-stage的,其中第一个stage是R ...
- c++中的stl
String Vector Set List Map 1.string char* s1 = "Hello SYSU!"; //创建指针指向字符串常量,这段字符串我们是不能修改的 ...
- yum小结
1.查看系统默认安装的yum# rpm -qa|grep yum2.卸载yum# rpm -e yum-fastestmirror-... yum-metadata-parser-... yum-3. ...
- springboot+kotlin+springcloud+java+grade+maven混编?
springboot + maven + java vs springboot + gradle + kotlin 快速搭建:https://start.spring.io/ springclould ...
- 芯灵思SinA33开发板怎样安装虚拟机
芯灵思SinA33开发板怎样安装虚拟机 今天入手一块芯灵思的开发板,型号为SIN-A33,用的是全志的A33芯片,与其它开发板不同的是, 芯灵思开发板手册上用来搭建开发环境的linux系统是cento ...
- baidu voice tts build
C++: g++ -c base64.cpp -o base64.o copy json.a curl.a to project root dir g++ sample.cpp -L. -lj ...