广告
返回顶部
首页 > 资讯 > 数据库 >mysql中delete误删除如何利用binlog回滚
  • 259
分享到

mysql中delete误删除如何利用binlog回滚

2024-04-02 19:04:59 259人浏览 安东尼
摘要

这篇文章主要介绍Mysql中delete误删除如何利用binlog回滚,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! mysql> se

这篇文章主要介绍Mysql中delete误删除如何利用binlog回滚,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

mysql> select * from tet3;
+----+-------------+
| id | dd          |
+----+-------------+
|  1 | XX          |
|  2 | YY          |
|  3 | aaa         |
|  4 | 5002301999X |
|  5 | 0000000X    |
|  6 | oi80        |
|  7 | 887         |
|  8 | 887         |
| 10 | jju         |
+----+-------------+
9 rows in set (0.03 sec)


mysql> delete from tet3 where id>3;
Query OK, 6 rows affected (0.03 sec)


mysql> select * from tet3;
+----+------+
| id | dd   |
+----+------+
|  1 | XX   |
|  2 | YY   |
|  3 | aaa  |
+----+------+
3 rows in set (0.00 sec)


[root@localhost data]# mysqlbinlog --no-defaults --base64-output=decode-rows -v -v db-bin.000016| sed -n '/### DELETE FROM `test`.`tet3`/,/COMMIT/p'> /root/delete.txt
[root@localhost data]# more /root/delete.txt
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=4
###   @2='5002301999X'
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=5
###   @2='0000000X'
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=6
###   @2='oi80'
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=7
###   @2='887'
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=8
###   @2='887'
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=10
###   @2='jju'
# at 3640
#150426 23:17:36 server id 199  end_log_pos 3671 CRC32 0xb946f7f5       Xid = 164
COMMIT;


[root@localhost ~]# cat delete.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@2.*),/\1;/g' | sed 's/@[1-9]=//g' >insert.sql
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# more insert.sql
INSERT INTO `test`.`tet3`
SELECT
  4 ,
  '5002301999X' ;
INSERT INTO `test`.`tet3`
SELECT
  5 ,
  '0000000X' ;
INSERT INTO `test`.`tet3`
SELECT
  6 ,
  'oi80' ;
INSERT INTO `test`.`tet3`
SELECT
  7 ,
  '887' ;
INSERT INTO `test`.`tet3`
SELECT
  8 ,
  '887' ;
INSERT INTO `test`.`tet3`
SELECT
  10 ,
  'jju' ;
以上就是我们需要的回滚sql了...执行就行了..




命令解释:
mysqlbinlog --no-defaults --base64-output=decode-rows -v -v db-bin.000016| sed -n '/### DELETE FROM `test`.`tet3`/,/COMMIT/p'> /root/delete.txt
mysqlbinlog --no-defaults --base64-output=decode-rows -v -v db-bin.000016 
这属于mysqlbinlog命令参数...
--no-defaults  阻止mysqlbinlog工具从任何配置文件读取参数(保证密码安全)
--base64-output=decode-rows  显示出row模式带来的sql变更
-v -v  采用二进制日志文件方式查看
sed -n '/### DELETE FROM `test`.`tet3`/,/COMMIT/p'
打印从'### DELETE FROm `test`.`tet3`'开始到'COMMIT'结束的内容...






cat delete.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@2.*),/\1;/g' | sed 's/@[1-9]=//g' >insert.sql


sed -n '/###/p'
打印'###'开头的行
sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;'
分开解读: s/### //g;s/\/\*.*/,/g;  这部分是把'### ' 和去除掉;
         s/DELETE FROM/INSERT INTO/g;   这部分是吧delete from 换成insert into;
         s/WHERE/SELECT/g;  这部分是吧where换成select;
|sed -r 's/(@2.*),/\1;/g'
-r是正则表达式,意思是在@2开头的一行末尾加一个分号.
sed 's/@[1-9]=//g'
这个就简单了..就是将@1-@9的去除.当然本例中只有@1和@2.

以上是“mysql中delete误删除如何利用binlog回滚”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中delete误删除如何利用binlog回滚

本文链接: https://www.lsjlt.com/news/62207.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中delete误删除如何利用binlog回滚
    这篇文章主要介绍mysql中delete误删除如何利用binlog回滚,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! mysql> se...
    99+
    2022-10-18
  • 如何利用MySQL的binlog恢复误删数据库详解
    目录1 查看当前数据库内容并备份数据库 2 开启bin_log功能 3 模拟误操作(插入3条数据,删除数据库) 4 数据恢复 5 总结 1 查看当前数据库内容并备份数据库 查看数据...
    99+
    2022-11-12
  • mysql中update误操作,利用binlog日志,模拟oracle闪回功能.
    前提:binlog模式为row,隔离模式为read-committed 对于update误操作,可以模拟oralce 的闪回功能,利用binlog日志,具体操作如下: mysql> sele...
    99+
    2022-10-18
  • 如何在MySQL中利用外键实现级联删除
    本篇内容介绍了“如何在MySQL中利用外键实现级联删除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下面,...
    99+
    2022-10-18
  • 如何利用PHP脚本删除MySQL上所有的表
    本篇内容主要讲解“如何利用PHP脚本删除MySQL上所有的表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用PHP脚本删除MySQL上所有的表”吧! ...
    99+
    2022-10-18
  • MySQL中如何使用binlog恢复或闪回数据库数据
    不知道大家之前对类似MySQL中如何使用binlog恢复或闪回数据库数据的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完MySQL中如何使用binlog恢复或闪回数...
    99+
    2022-10-18
  • PHP中如何使用MySQL删除语句
    今天小编给大家分享一下PHP中如何使用MySQL删除语句的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、MySQL删除语句...
    99+
    2023-07-05
  • JavaScript如何实现不要使用delete来删除一个数组中的项
    小编给大家分享一下JavaScript如何实现不要使用delete来删除一个数组中的项,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!不要使用 delete 来删除一个数组中的项。使用&nb...
    99+
    2022-10-19
  • windows如何不用软件就能恢复过来回收站中误删除文件
    今天就跟大家聊聊有关windows如何不用软件就能恢复过来回收站中误删除文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。有时候你把不需要的文件放到回收站去先储存着,但有的人比较急性...
    99+
    2023-06-14
  • 误删除mysql中的所用用户,如何重新设置root账号和密码
    在练习mysql语句的时候,使用delete将数据库中的所有用户删除了,其中也包括root用户。并进行了flush privileges;这时候发现重新登入mysql已经不能正常登陆。对此我们要重...
    99+
    2022-10-18
  • 数据库中如何使用闪回删除来回退DROP TABLE操作
    这篇文章主要为大家展示了“数据库中如何使用闪回删除来回退DROP TABLE操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中如何使用闪回删除来...
    99+
    2022-10-18
  • 如何实现MySQL中删除用户的语句?
    如何实现MySQL中删除用户的语句?MySQL是一种流行的关系数据库管理系统,常用于存储和管理大量数据。在日常使用中,我们可能需要删除不再需要的用户。本文将介绍如何在MySQL中使用具体的代码示例删除用户。在MySQL中,我们可以通过使用D...
    99+
    2023-11-08
    删除 MySQL 用户
  • MySQL中如何添加删除用户和授权
    这篇文章将为大家详细讲解有关MySQL中如何添加删除用户和授权,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下面给大家了解一下MySQL中的用户管理,介绍一...
    99+
    2022-10-18
  • 如何实现MySQL中删除用户角色的语句?
    如何实现MySQL中删除用户角色的语句?在MySQL中,我们可以通过使用GRANT和REVOKE语句来授予和撤销用户的角色权限。要删除用户角色,可以使用REVOKE语句来取消用户的特定角色权限。下面是一个具体的代码示例,演示如何删除MySQ...
    99+
    2023-11-09
    删除用户角色MySQL 用户角色删除SQL MySQL用户角色操作
  • 如何使用SQL语句在MySQL中更新和删除数据?
    如何使用SQL语句在MySQL中更新和删除数据?在MySQL数据库中,更新和删除数据是非常常见的操作。通过使用SQL语句,我们可以方便地更新和删除表中的数据。本文将介绍如何使用SQL语句在MySQL中更新和删除数据,并提供具体的代码示例。更...
    99+
    2023-12-17
    MySQL SQL语句 更新删除数据
  • 如何在android中利用RecyclerView实现Item的拖拽排序与滑动删除
    如何在android中利用RecyclerView实现Item的拖拽排序与滑动删除?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。需求和技术分析RecyclerV...
    99+
    2023-05-31
    recyclerview android recycle
  • 如何用PHP从MySQL数据库中添加、更新和删除数据
    本篇内容主要讲解“如何用PHP从MySQL数据库中添加、更新和删除数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用PHP从MySQL数据库中添加、更新和删除数据”吧!一、PHP和MySQ...
    99+
    2023-07-05
  • Navicat使用教程:如何删除MySQL中具有不同ID的重复行
    下载Navicat Premium最新版本Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的...
    99+
    2022-10-18
  • 如何利用shell删除数据表中指定信息和字段对应的文件
    这篇文章主要介绍“如何利用shell删除数据表中指定信息和字段对应的文件”,在日常操作中,相信很多人在如何利用shell删除数据表中指定信息和字段对应的文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何利...
    99+
    2023-06-09
  • 我们如何使用 MySQL TRIM() 删除所有行中的空格并更新表?
    假设如果一个表中有许多值在表的列中包含空格,那么这是浪费空间。我们可以使用 TRIM() 函数从所有行中删除空格并在单个查询中更新表。按照“Employee”的示例,所有行中都有空格将展示这一概念 -示例mysql> Sele...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作