作者:一个人的孤独自白 cnblogs.com/-mrl/p/9959365.html

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

如果身边有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文本进行语句过滤,重新插入数据或更新数据

1 恢复MySQL误删数据相关推荐

  1. MySQL误删数据救命指南:必收藏

    首先看下mysql误删数据排名最前的几种是: 1.误删文件 2.误删库.表 3.错误全表删除 / 更新 4.升级操作失误 都来看看你命中过几个,hoho. 简单说下我亲手造的一个大事故吧. 那大概是一 ...

  2. MySQL误删数据?快速恢复!

    MySQL误删数据?快速恢复! 第一步:保证mysql已经开启binlog,查看命令: 查看binklog是否开启! show variables like '%log_bin%'; 查看binlog ...

  3. MySQL误删数据后,查找操作日志并恢复数据

    有时候直接操作数据库,可能会出现误删除一些数据的情况,比如删了某个表中某一行数据,事后发现该条数据是误删的,还需要恢复,但是又不太记得具体每个字段原来的数据是什么了,只能要查到之前删掉的数据每个字段值 ...

  4. 无备份情况下恢复MySQL误删的表,这样做再也不用怕误删了

    中国统计网 2017-09-25 20:28 小编寄语 想必大家都知道,Oracle ACE李真旭(Roger)是国内最专业的Oracle 数据库恢复专家.但知识都是触类旁通,真正的专家,从来不会局限 ...

  5. 记一次无备份恢复Mysql误删用户数据

    我本身仅是一名前端,由于公司特殊情况(没员工),我负责数据库维护,社区维护,社区管理等工作.今天因为后台管理没法查到一个用户的数据,所以我拿着userid去mysql查询. 我看到后端原本写好了一句查 ...

  6. MySQL误删数据?快速恢复指南来了!

    作者:一个人的孤独自白 cnblogs.com/-mrl/p/9959365.html 相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求,如果手法很稳那么很庆幸可以很快完成任务,很不幸 ...

  7. nactive恢复mysql删除数据_navicat for mysql 里删除的数据表及数据有办法恢复吗

    展开全部 每个 DBA 是不是都有过删库的经历?62616964757a686964616fe4b893e5b19e31333433626437删库了没有备份怎么办?备份恢复后无法启动服务什么情况?表 ...

  8. MySQL误删数据后快速恢复的方法

    传统解法 用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态.然后跳过误操作的SQL,再继续应用binlog. 利用binlog2sql快速闪回 首先,确认你的MySQL serv ...

  9. mysql数据库as表恢复_【翻译】如何从ibdata和.frm文件恢复MySQL表数据

    这个教材叫你如何在数据库全部或者部分数据丢失,或者数据库加载数据失败时,如何恢复数据. 发生这种情况的一个原因是表数据损坏. 在这种特定情况下,你连接到MySQL服务器,你看不到更多的表,因为它们缺失 ...

最新文章

  1. socket.io笔记
  2. 如何设置mysql的权限_mysql 权限控制
  3. 039_External Data Source(转载)
  4. [C++]VS2005(VC8) 使用 Boost
  5. 案例 体检套餐管理系统 需求一览 c# 1614099219
  6. Qt线程和signal-slot
  7. hosts ip 指向ip_不同网段共享打印机?不同IP段怎么共享打印机?
  8. Chrome调试vue项目时session异常,后端tp6 session使用异常
  9. springcloud注册中心Eureka英 [juəˈri:kə]的基本搭建
  10. Pytorch—时序数据的加载与简单处理
  11. AK大神AE教程文字整编
  12. JavaWeb中 pojo、entity、Dao、bo的含义
  13. svn上文件符号的意思
  14. 百度AI战疫五十天:三场战役与一次胜利
  15. 1264. 动态求连续区间和
  16. python编程 迷你世界_迷你世界迷你编程下载
  17. 维护站点和建站时遇到的一些问题
  18. URL中文转义和特殊字符处理
  19. WebRTC系列-音频ADM播放采集的停止与开始
  20. HDOJ(HDU) 1570 A C

热门文章

  1. 超详细目标检测,yolo3训练自己的数据集
  2. 数据库decimal对应java什么类型_mysql decimal(10,2)对应java类型
  3. beanutils copyproperties_你还在用BeanUtils进行对象属性拷贝?
  4. 大数据集合求交集_还记得学生时代数学老师教的“集合”吗?
  5. R_ggplot2作图原理
  6. 爱立信卫翰思:已囊括拉美一半以上…
  7. 服务器控件下拉框显示隐藏,演练:在 GridView Web 服务器控件中编辑时显示下拉列表...
  8. html5和css3书籍推荐,HTML5与CSS3权威指南
  9. win7在计算机中虚拟光驱怎么删除,win7系统删除虚拟光驱的操作方法
  10. 《数据库系统概论》第一章笔记