>>号外:关注“Java精选”公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料、开源项目。

相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求,如果手法很稳那么很庆幸可以很快完成任务,很不幸某一天突然手一抖把表里的数据修改错误或者误删了,这个时候你会发现各种问题反馈接踵而来。

如果身边有BDA或者有这方面经验的同事那么可以很快解决这个问题,如果没有那么希望这篇文章可以帮到你。

第一步:保证mysql已经开启binlog,查看命令:

查看binklog是否开启

show variables like '%log_bin%';

查看binlog存放日志文件目录(如下图,博主binlog目录为/data/mysql):

show variables like '%datadir%';

值为OFF,需开启,值为ON,已开启。

如果没有开启binlog,也没有预先生成回滚SQL,那可能真的无法快速回滚了。对存放重要业务数据的MySQL,强烈建议开启binlog。

第二步:进入binlog文件目录,找出日志文件

第三步:切换到mysqlbinlog目录(当线上数据出现错误的时候首先可以询问具体操作人记录时间点,这个时候可以借助mysql自带的binlog解析工具mysqlbinlog,具体位置在mysql安装目录**/mysql/bin/下)

第四步:通过mysqlbinlog工具命令查看数据库增删改查记录(必须切换到mysqlbinlog目录才有效)

例子1:查询2018-11-12 09:00:00到2018-11-13 20:00:00 数据库为 youxi 的操作日志,输入如下命令将数据写入到一个备用的txt文件中

 mysqlbinlog --no-defaults --database=youxi --start-datetime="2018-11-12 09:00:00" --stop-datetime="2018-11-13 20:00:00" /data/mysql/mysql-bin.000015    > template_coupon_tb_product_category.txt

例子2:查询2018-11-12 09:00:00到2018-11-13 20:00:00 数据库为 youxi 的操作日志,并输出到屏幕上

mysqlbinlog --no-defaults --database=youxi --start-datetime="2018-11-12 09:00:00" --stop-datetime="2018-11-13 20:00:00" /data/mysql/mysql-bin.000015   |more

例子3:查询2018-11-12 09:00:00到2018-11-13 20:00:00 数据库为 youxi 的操作日志,并且过滤出 只包括 template_coupon_tb_product_category 表数据的操作记录 ,输入如下命令将数据写入到一个备用的txt文件中

mysqlbinlog --no-defaults --database=youxi --start-datetime="2018-11-12 09:00:00" --stop-datetime="2018-11-13 20:00:00" /data/mysql/mysql-bin.000015   | grep template_coupon_tb_product_category   > template_coupon_tb_product_category.txt

mysqlbinlog 命令的语法格式:
mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名--------------------------------------------------------
常用参数选项解释:
--start-position=875 起始pos点
--stop-position=954 结束pos点
--start-datetime="2016-9-25 22:01:08" 起始时间点
--stop-datetime="2019-9-25 22:09:46" 结束时间点
--database=zyyshop 指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地log日志)
--------------------------------------------------------
不常用选项:
-u --user=name 连接到远程主机的用户名
-p --password[=name] 连接到远程主机的密码
-h --host=name 从远程主机上获取binlog日志
--read-from-remote-server 从某个MySQL服务器上读取binlog日志

第五步:利用第四步输出的sql语句或者txt文本进行语句过滤,重新插入数据或更新数据。

作者:一个人的孤独自白

cnblogs.com/-mrl/p/9959365.html

往期精选  点击标题可跳转

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定,真牛逼!

为什么阿里巴巴禁止使用 Executors 创建线程池,而是通过 ThreadPoolExecutor 方式?

面试官:RabbitMQ 如何保障消息 100% 投递成功、消息幂等性?

面试官:说一说 MySQL 与 PostgreSQL 的区别,如何技术选型?

Spring 循环依赖,源码详细分析,真的必须要三级缓存吗?

为什么 MySQL 不建议使用 NULL 作为列默认值?

为什么放弃使用 Hibernate、JPA、Mybatis 数据持久化框架,最终选择 JDBCTemplate!

Spring Cloud+OAuth2+Spring Security+Redis 实现微服务统一认证授权,附源码

Java 中 Switch 是如何支持 String 字符串?为什么不支持 long 类型?

为什么阿里巴巴禁止开发人员 boolean 类型变量使用 isXXX 来命名?

为什么 MyBatis 在国内非常流行,而国外 Java 工程师却不愿意使用?

点个赞,就知道你“在看”!

MySQL 中误删表数据,如何快速恢复丢失的数据?相关推荐

  1. mysql 找回误删表的数据办法_mysql找回误删表的数据方法(必看)

    有备份的话很简单,只需要生成一个最近备份的数据 然后用mysqlbinlog找回备份时间点之后的数据 再恢复到现网即可. 要是没有备份 可能就会比较麻烦,找回数据的成本也是非常之高的. 下面介绍下 m ...

  2. mysql 清空表怎么恢复_mysql怎么恢复删除的表?mysql找回误删表的数据方法

    下面小编就为大家带来一篇mysql 找回误删表的数据方法(必看).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧. 有备份的话很简单,只需要生成一个最近备份的数据,然后用 ...

  3. 2021-01-19:mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业和个体户,个体户的数据量差不多占50%,根据条件把个体户的行都删掉。请问如何操作?

    2021-01-19:mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业和个体户,个体户的数据量差不多占50%,根据条件把个体户的行都删掉.请问如何操作? 福哥答案2 ...

  4. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  5. MySQL中竖表和横表之间的相互转换

    MySQL中竖表和横表之间的相互转换 1.  横表转为竖表 表tb的结构为 表中的数据为 现在要求查询到如下结果 使用的SQL查询语句应该如下: 或者使用下面查询 2.  竖表转为横表 tb2表的结构 ...

  6. mysql中dual表

    1.楔子 今日在某项目数据库中发现每个库底下都有这样一张表,如下图所示: 这张表有且只能有一条数据,表结构如下所示: 我想这样做必然有其精神奥义和奇技淫巧,于是一探究竟. 2. mysql中模拟dua ...

  7. mysql中修改表的默认编码和表中字段的编码

    ALTER TABLE `table` DEFAULT CHARACTER SET utf8; 但是虽然修改了表的编码格式,但是字段的编码格式并没有修改过来,没有什么卵用 又发现一条语句,作用是修改字 ...

  8. mysql 如何删除重复的行_如何从mysql中的表中删除重复的行

    我需要从 mysql中删除表中的重复记录. 所以我有一个表名"employee"字段是empid,empname,empssn 为了获得重复记录我写了一个查询 SELECT COU ...

  9. mysql导出oracle_如何将mysql中的表结构导出放入oracle中

    展开全部 将mysql中的表结构导出放入oracle中的方法: 1.导出mysql的表结构sql脚本,然后修改mysql中的数据类型为oracle中的数据类型: MySql与Oracle数据类型的62 ...

最新文章

  1. 诊断IIS中的ASP0115错误
  2. 比较好的php源码,目前市面上能拿到的最好的PHP跑F分源码下载
  3. SpringBoot AOP拦截器
  4. CABasicAnimation x y z 轴旋转动画
  5. 韩国防部长会见美驻韩大使 或谈韩日舰机矛盾
  6. Mysql 中的事件//定时任务
  7. resset-rem.css
  8. String字符串工具类 StringUtils.java
  9. 盘点抖音及今日头条的优化推广方法有哪些?
  10. 项目移植过程中报:“Project facet Java version 1.7 is not supported.” 错误
  11. 【渝粤教育】电大中专计算机应用基础作业 题库
  12. 预编译stdafx.h,无法找到文件问题,红色波浪线
  13. DEAP 框架(遗传算法)模块笔记
  14. epub、ocf等常用电子书格式浅析----附JAVA示例程序
  15. 技嘉 AORUS Radeon RX 6700 XT ELITE 12G 显示卡潮流登场
  16. Fastjson漏洞修复参考
  17. linux如何卸载lightdm,告诉你Ubuntu安装LightDM的方法及命令
  18. 转载 PVE 防火墙
  19. 精制糖行业采用树脂工艺进行脱色技术分析
  20. pci和pci_PCI合规性

热门文章

  1. Spring框架——Bean的Scope(作用域)易错陷阱解析
  2. 【C++】专项练习(2)(牛客)
  3. android textview 字体颜色设置,Android textview 设置不同的字体大小和颜色
  4. 利用基于Python的Pelican打造一个自己的个人纯静态网站
  5. Git删除远程Tag、分支
  6. 领结婚证后男人的第一句话
  7. PTA 题目 列车调度
  8. JimuReport积木报表—表达式介绍
  9. 会话劫持(SessionHijack)
  10. css属性、单位、颜色