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 ...
随机推荐
- linux修改ssh端口 以及禁止root远程登录 (实验机 CentOs)
把ssh默认远程连接端口修改为3333 1.编辑防火墙配置: vi /etc/sysconfig/iptables 防火墙新增端口3333,方法如下: -A INPUT -m state --stat ...
- .npy,.mat,.txt转换
.npy--->.txt: http://blog.csdn.net/wgf5845201314/article/details/73825785 .npy<->.mat: i ...
- php经典算法实现(转)
<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_s ...
- 【Eigen开源库】linux系统如何安装使用Eigen库
code /* * File : haedPose.cpp * Coder: * Date : 20181126 * Refer: https://www.learnopencv.com/head-p ...
- Java中的国际化
一.什么是国际化? 国际化是指应用程序运行时,可根据客户端请求来自的国家/地区.语言的不同而显示不同的界面. 二.Java如何实现国际化? Java程序的国际化思路是将程序中的标签.提示等信息放在资源 ...
- Linux用管道命令对文件的移动
我的问题是这样的:我有一个文件夹,里面有大约有1000个文件,然后我想把这样的一部分文件给随机分成两部分,一部分含有100张,另外一部分含有剩下的所有的文件,这个时候如果是在Linux图形界面的话直接 ...
- sticky footer 和 flex布局的原理
Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果内容足够长时,页脚块会被内容向下推送. 一.使用f ...
- dp 优化 F2. Pictures with Kittens (hard version)
dp的优化可能是自己的弱项吧 F1中n*n*n的复杂度强行过去了 F2就无能为力了: 状态转移 dp[ i ] [ j ] 第一个i存的是位置 1-n; j是放入数字的个数 然后F1就暴力过去了 ...
- hdu2732 Leapin' Lizards 最大流+拆点
Your platoon of wandering lizards has entered a strange room in the labyrinth you are exploring. As ...
- LeetCode - Minimum Area Rectangle
Given a set of points in the xy-plane, determine the minimum area of a rectangle formed from these p ...