文章来源: 学习通http://www.bdgxy.com/

普学网http://www.boxinghulanban.cn/

智学网http://www.jaxp.net/

第一步:保证mysql已经开启binlog

show variables like '%log_bin%';
log_bin 为 on是开启。

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

mysql> show binary logs; #获取binlog文件列表
mysql> show master status; #查看当前正在写入的binlog文件
mysql> reset master; 重置binlog

第三步: 通过mysqlbinlog工具命令查看数据库增删改查记录(必须切换到mysqlbinlog目录才有效)或者直接指定binlog

例子1:查询2021-3-12 14:00:00到2021-3-12 14:03:00 数据库为 g_xinxiangshop的操作日志,输入如下命令将数据写入到一个备用的txt文件中

/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt

例子2:查询2021-3-12 14:00:00到2021-3-12 14:03:00 数据库为 g_xinxiangshop的操作日志,并且过滤出 只包括 g_user表数据的操作记录 ,输入如下命令将数据写入到一个备用的txt文件中

/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 | grep g_user > /tmp/binlog.txt

例子3:查询2021-3-15 15:25:00到2021-3-15 15:35:00 数据库为 g_shoptest 的操作日志,并输出到屏幕上
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_shoptest --start-datetime=“2021-3-15 15:25:00” --stop-datetime=“2021-3-15 15:35:00” /data/mysql/mysql-bin.000001 |more

图片和例1、例2内容一样 看到了truncate操作 和记录点 就可以做恢复操作了!

第四步:测试利用bin_log恢复数据

登录mysql
测试

1、 reset master; 重置binlog并重新生成记录日志

2、 测试某个表 插入一条数据 然后不小心删除了。

3、 查看bin-log 命令:show binlog events in ‘mysql-bin.000001';

如上图
我们看到删除点在928到 1294 ;之前的新增的数据 在154到520

/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 154 --stop-position 520 | mysql -uroot -p g_shoptest

执行完毕之后 去看看删除那条数据吧 又回来了

binlog命令

1.最长用的就是回复指定数据端的数据了,可以直接恢复到数据库中:

mysqlbinlog --start-date="2021-3-12 14:00:00" --stop-date="2021-3-12 14:03:00" mysql_bin.000001 |mysql -uroot -p123456 

2.指定开始\结束位置,从上面的查看产生的binary log我们可以知道某个log的开始到结束的位置,我们可以在恢复的过程中指定回复从A位置到B位置的log.需要用下面两个参数来指定:

  • --start-positon="50" //指定从50位置开始
  • --stop-postion="100"//指定到100位置结束

/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 7903538 --stop-position 7904498|mysql -uroot -p123456

**常见错误 ERROR: Error in Log_event::read_log_event(): ‘Found invalid event in binary log', data_len: 31, event_type: 35

*问题为mysqlbinlog版本所导致

查看当前os使用的mysqlbinlog

shell> which mysqlbinlog
/usr/bin/mysqlbinlog

查看mysql当前使用的mysqlbinlog

±--------------±------------------+
| Variable_name | Value |
±--------------±------------------+
| basedir | /usr/local/mysql/ |
±--------------±------------------+

mysql> show variables like ‘basedir';

对比两个版本

shell> /usr/bin/mysqlbinlog --version
shell> /usr/local/mysql/bin/mysqlbinlog --version

解决此问题指定mysqlbinlog路径即可

/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt

到此这篇关于mysql5.7使用binlog 恢复数据的方法的文章就介绍到这了,更多相关mysql binlog 恢复数据内容请搜索菜鸟教程www.piaodoo.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持菜鸟教程www.piaodoo.com!

mysql5.7使用binlog 恢复数据的方法相关推荐

  1. Mysql使用binlog恢复数据解决误操作问题的两种方法

    Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...

  2. mysql根据bin log恢复_MySQL 通过 binlog 恢复数据

    目的 通过了解 binlog 日志的相关配置,简单掌握通过 binlog 对数据库进行数据恢复操作: mysql 日志文件 任何成熟软件都会有一套成熟的日志系统,当软件出现问题时,这些日志就是查询问题 ...

  3. 怎么找回删除的文件?尝试下这些恢复数据的方法

    我们使用电脑时,总会产生各种各样的文件数据.这些文件保存在电脑里面,但是有时不免手滑误删重要的文件.这些文件被删除.被清空了,还可以恢复回来吗?怎么找回删除的文件?建议你尝试下这些恢复数据的方法. 一 ...

  4. 移动硬盘文件或目录损坏且无法读取?分享恢复数据的方法

    案例:移动硬盘提示无法访问,文件或目录损坏且无法读取? "这个移动硬盘两年没用了,今天拿出来找文件,插上电脑后移动硬盘打不开,提示无法访问,文件或目录损坏且无法读取.硬盘里有重要文件,如何恢 ...

  5. 如何使用mysql binlog 恢复数据

    如果想通过 mysql 的 binlog 恢复数据,首先要开启 binlog .这里搭建一个测试的环境,了解一下 mysql binlog 是如何恢复数据库的.原理比较简单,binlog 会存储mys ...

  6. mysql8从binlog恢复数据

    mysql8从binlog恢复数据 mysqlbinlog官方文档 数据恢复 数据恢复命令 注意 mysqlbinlog官方文档 https://dev.mysql.com/doc/refman/8. ...

  7. 磁盘无法格式化怎么办?格式化硬盘以及恢复数据的方法

    电脑硬盘存储数据过多,占用太多内存,格式化是清空硬盘空间最简单的方法.用户重装系统时需要对硬盘格式化操作来清理系统或者是增加分区容量.遇到系统提示磁盘无法格式化,我们该怎么办?格式化后想要恢复数据,我 ...

  8. 利用 MySQL bin-log 恢复数据表

    今天公司一同事使用典型的"UPDATE 不带 WHERE 语句"误操作把数据库中一张极重要数据表 player 给"做掉了",还算幸运的是该数据库每3个月会完整 ...

  9. MySQL——通过binlog恢复数据

    目录 1.binlog基本概念 2.MySQL开启binlog 3.使用binlog日志恢复数据 3.1.恢复前准备工作 3.2.数据恢复 3.2.1.通过mysqlbinlog将binlog转为sq ...

最新文章

  1. Loadrunner11如何使用非IE浏览器录制脚本
  2. [转]C++基础:C++的结构struct
  3. Makefile_01:什么是Makefile?
  4. nas php.ini,php.ini 配置文件常用详解
  5. 189. 旋转数组 golang
  6. android 字符串特殊字符转义
  7. MIP开发教程(二) 使用MIP-CLI工具调试MIP网页
  8. php 五颗星评价,简单实现点触/输入值给五颗星评价
  9. 【转载】vim常用命令总结
  10. ajax error的用法,JQuery ajaxError()用法及代码示例
  11. 基于MQTT的消息推送环境搭建
  12. 计算机系统结构02325知识点,02325计算机系统结构复习资料.doc
  13. python配色_Python数据分析之Seaborn(配色方案)
  14. w10计算机用户名密码忘了,电脑w10系统开机密码忘了
  15. vue 中国省市区级联数据下拉工具
  16. TCP/IP中MSL详解
  17. trainning-----1
  18. 海尔对话 Unity:作为数字转型的高阶形态,数字孪生发展前景不可逆
  19. 希捷160G 7200.10 8Mb硬盘辨真伪!
  20. Solidity 从入门到实战(一)

热门文章

  1. MySQL删除全局唯一索引unique
  2. html tr加阴影,table tr分离并加圆角和阴影
  3. 字体排版旋转90度或其他度数,页面加载完成打印
  4. 屏蔽Edge浏览器的新闻推送,高效办公!
  5. 2023最新pytorch安装教程,简单易懂,面向初学者(Anaconda+GPU)
  6. AT89C51 汇编语言实现LED间隔1s闪烁(已验证)
  7. oc 项目倒入swift 代码注意事项
  8. 网页制作练习(JS制作浮动窗口和循环滑动窗口)
  9. js阻止冒泡事件和默认事件
  10. 云服务平台分类——IAAS,PAAS,SAAS