删除 MySQL 表中的数据

mysql> use sbtest;
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
|     1000 |
+----------+
1 row in set (0.00 sec)mysql> delete from sbtest1;
Query OK, 1000 rows affected (0.21 sec)mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

确认时间点和当前二进制日志文件,从二进制日志中读取操作记录

mysqlbinlog \
--start-datetime="2018-09-27 15:55:00" \
--stop-datetime="2018-09-27 15:00:00" \
--base64-output=decode-rows \
--result-file=result.sql \
-v /var/lib/mysql/binlog.000022

其中的一条记录

去除不相关的内容

grep -A 5 "DELETE FROM \`sbtest\`.\`sbtest1\`" result.sql > 1.txt


提取数据

grep "=" 1.txt > 2.txt
sed -i 's/###   //g' 2.txt 


使用以下脚本生成 INSERT 语句

[root@mysql03 tmp]# cat r2.sh
#!/bin/bash
vs=""
while read line
don=`echo $line | awk -NF "=" '{print $1}'`v=`echo $line | awk -NF "=" '{print $2}'`if [ "$n" = "@1" ]; thenvs="INSERT INTO \`sbtest\`.\`sbtest1\` VALUES("$velif [ "$n" = "@2" ]; thenvs=$vs" , "$velif [ "$n" = "@3" ]; thenvs=$vs" , "$velif [ "$n" = "@4" ]; thenvs=$vs" , "$v");"echo $vs >> 3.txtfi
done < 2.txt
[root@mysql03 tmp]# sh r2.sh 


将数据导入到 MySQL 表中

[root@mysql03 tmp]# mysql < 3.txt
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
|     1000 |
+----------+
1 row in set (0.00 sec)

转载于:https://blog.51cto.com/linux10000/2286654

通过 MySQL 二进制日志恢复删除的记录相关推荐

  1. 根据mysql数据库日志恢复删除数据

    根据mysql数据库日志恢复删除数据 BINLOG就是一个记录SQL语句的过程,和普通的LOG一样.不过只是她是二进制存储,普通的是十进制存储罢了. 1.配置文件里要写的东西: [mysqld] lo ...

  2. mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库

    二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...

  3. mysql 二进制日志后缀数字最大为多少

    之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary ...

  4. mysql 二进制日志详解_Mysql二进制日志详解

    引言 注:图片取自网络 提一下比较重要的几个: 重做日志(Redo Log):重做日志是实现mysql事务的持久性的原理之一,当新增数据时,Redo Log会备份新数据,在事务提交前,只要持久化Red ...

  5. mysql二进制日志内容说明_MySQL二进制日志相关问题详细说明

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  6. 2.5.2 MySQL二进制日志介绍

    MySQL二进制日志介绍 什么是 binary log 这个文件记录了mysql数据库所有的DDL和DML(除了数据查询语句 select)语句事件.用来记录数据库中发生的修改情况. 比如:数据的修改 ...

  7. mysql二进制日志重置_MySQL二进制日志备份和恢复详解

    原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...

  8. mysql 二进制日志大小_mysql二进制日志。

    mysql二进制日志: 命令行参数: --log-bin[=file_name]   文件名 --log-bin-index[=file]文件索引 --max_binlog_size     单个文件 ...

  9. mysql二进制日志的开启和使用

    mysql二进制日志的开启和使用 二进制日志(BINLOG)记录了所有的ddl和dml语句,但不包括数据查询语句.语句以"事件"的形式保存,描述数据更改过程. 环境:win8 my ...

最新文章

  1. 《PHP和MySQL Web开发》学习之二--数据的存储与检索
  2. Flink从入门到精通100篇(三)-如何利用InfluxDB+Grafana搭建Flink on YARN作业监控大屏环境
  3. 关于高并发,我想告诉你这些!
  4. Spring学习(九)Spring 和数据库编程【了解】
  5. Hadoop学习之pig
  6. AAPT2 error: check logs for details.
  7. delphi控件切图界面闪烁_先本设计教你跳过UI小程序的七个坑
  8. ora-24247:网络访问被访问控制列表(ACL)拒绝
  9. 【英语学习】【Level 08】U02 Movie Time L2 In black and white
  10. BZOJ 1072 排列
  11. IDEA自动编译不用每次make
  12. 读书笔记∣元数据:用数据的数据管理你的世界 Ch.5-8
  13. 团队作业:《构建之法》团队学习心得
  14. 华为云备份会上传私密相册吗_华为、小米都是国产手机,为啥文件夹却是“英文”?哪些能删除?...
  15. Android-Universal-Image-Loader-master(图片浏览+缓存)
  16. 手机序列号和IMEI号的区别
  17. NodeJS开发简易图书管理系统
  18. 2021国赛新大陆物联网Ubuntu系统维护(中职)
  19. 读《Machine Learning Done Wrong》(机器学习易犯错误)有感
  20. SQL Server 2019下载安装教程

热门文章

  1. 学习 Node.js 的 6 个步骤
  2. 小米手机连接不上网络 或者 暂时关闭状况不佳的连接
  3. 进程间能否传递指针?
  4. 函数的返回竟然能作为左值
  5. 基于Spring Security的认证方式_Spring Security 的认证流程_Spring Security OAuth2.0认证授权---springcloud工作笔记123
  6. k8s核心技术-Helm(安装和配置仓库)---K8S_Google工作笔记0045
  7. 两篇transfomer 论文解读
  8. 简体中文Win7打开简体中文chm中文乱码解决方法
  9. 用phpcms如何将静态页面制作成企业网站(中)
  10. ftk学习记(窗口全屏设置篇)