当前位置: 首页 > news >正文

binlog找回误删数据

1、检查当前是否开启binlog存储

输入命令show variables like '%log_bin%';,结果如下
在这里插入图片描述
可以看到log_bin的值是ON,说明binlog开启了。

2、查找binlog的存储位置

这个去到数据库的my.cnf配置文件中寻找,有一个log_bin的配置
在这里插入图片描述
切换到log_bin的目录下,可以发现有多个binlog日志文件和一个索引文件,这个索引文件记录了binlog日志文件的顺序,每次重启mysql都会生成一个新的binlog日志文件,编号依次递增
在这里插入图片描述

3、查看binlog文件

在mysql的bin目录下,有一个binlog日志分析工具mysqlbinlog,在当前目录下,输入下面命令可以查看对应的binlog日志信息

查询某时间段内tacs_log库的操作日志,写到txt文件中

./mysqlbinlog --no-defaults --database=tacs_log --start-datetime="2023-03-03 14:00:00" --stop-datetime="2023-03-03 14:45:00" /app/logs/mysql/mysql-binlog.000056 > temporary.txt  

将操作日志输出到屏幕上

./mysqlbinlog --no-defaults --database=tacs_log --start-datetime="2023-03-03 14:00:00" --stop-datetime="2023-03-03 14:45:00" /app/logs/mysql/mysql-binlog.000056 |more

查询某个具体表的日志输出到文件

./mysqlbinlog --no-defaults --database=tacs_log --start-datetime="2023-03-03 14:00:00" --stop-datetime="2023-03-03 14:45:00" /app/logs/mysql/mysql-binlog.000056 |grep auth_service_log_20230206 >1.txt

在这里插入图片描述
在查看日志时,发现了一个日志文件好像是乱码,实际上这是经过了base64编码之后的结果,所以,在操作命令上加上解码即可,命令如下

./mysqlbinlog --no-defaults --database=tacs_log --start-datetime="2023-03-03 14:00:00" --stop-datetime="2023-03-03 14:45:00" -vv --base64-output=decode-rows  /app/logs/mysql/mysql-binlog.000056 > temporary.txt

在这里插入图片描述
可以看到,对应的操作sql已经展示出来,上面是我测试了删除数据,可以看到表、数据都打印出来,根据这些可以进行数据恢复。

4、补充

命令参数解析:

--start-position=103 起始位置
--stop-position=203 结束位置
--start-datetime 起始时间点
--stop-datetime 结束时间点
http://www.lryc.cn/news/27998.html

相关文章:

  • 《程序员面试金典(第6版)》面试题 02.03. 删除中间节点
  • Spring Boot
  • 图论初入门
  • 02-Oracle数据库的启动与关闭
  • 网络营销培训完能达到什么水平?学完能创业吗?
  • 大数据技术之——zeppelin数据清洗
  • Barra模型因子的构建及应用系列五之NonLinear Size因子
  • C++ 常用命令行开发工具(Linux)
  • java基础学习 day47(抽象类,抽象方法)
  • Java代码弱点与修复之——Open redirect(开放重定向)
  • Go 指针
  • shardingsphere5.1.1分表分库yaml配置 自定义策略
  • “探索未来:VR全景直播技术引领新媒体时代”
  • Spring Cloud(微服务)学习篇(六)
  • MATLAB-Scatter3-三维散点图投影至XYZ三个平面
  • Unity/C#------委托与事件(一篇文章彻底搞懂...)
  • 别再为 Jenkins 安装烦恼,Docker 帮你轻松解决
  • 汇编语言程序设计(一)
  • 【uni-app教程】四、UniAPP 路由配置及页面跳转
  • ROS从入门到精通系列(二十八)-- ROS控制器图形化界面开发
  • Submodule命令:android如何将自己项目中的某个Module作为gitlab中第三方公共库
  • MySQL索引事务
  • ISO27001信息安全管理体系认证
  • Linux应用GUI开发C++ 之gtkmm4(1)
  • 选课系统的设计与实现
  • 关于安卓的一些残缺笔记
  • MySQL 中的锁有哪些类型,MySQL 中加锁的原则
  • Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作
  • 2023最新版本RabbitMQ下载安装教程
  • 如何使用码匠连接 Elasticsearch