mysql 数据恢复 binlog
被删库勒索的一次记录
项目在云服务器运行了一年多了,中间迁移过一次,从阿里迁到华为了。
迁移的时候把数据库文件 test.sql 用完了之后就扔在了服务器上。
最近访问系统的时候,忽然系统崩溃,表不存在了。
数据库连接工具也连不上了,到服务器上的数据库连接工具也登录不进去了。
后来发现root用户没有了,新增了root用户,进入数据库,发现这个东西。。。
woc,中勒索病毒了?(事后发现不是服务器中毒,是密码太简单被破解了。。。)
想办法恢复数据吧,多方打探,找到通过binlog日志文件恢复数据的方法,但是基本都是linux系统的,但是大同小异,windows上基本一样。
介绍一下binlog日志文件,记录了库表字段数据的增删改操作,可用于主从数据同步、数据恢复。
window环境
1、登录mysql
mysql -u root -p
2、查看日志文件(mysql8.0以前,是默认不开启的,得亏我用的是8之后的版本,不然真凉了)
show variables like ‘%log_bin%’;
查看mysql目录下的 .ini 配置文件datadir配置的地址(我这里没有配置,默认就在mysql安装目录的data目录下)
mysql安装目录的bin目录下,管理员打开cmd
3、执行命令(我为了方便把binlog.000001文件复制到bin目录下一份)
mysqlbinlog --no-defaults --base64-output=decode-rows -v binlog.000001 > binlog01.sql
生成下图带有被注释掉的SQL 语句的文件,通过这个文件
注:文件太大普通编辑器打不开的话,安装UltraEdit编辑器打开,拖到最后,这里记录了他的罪行
找到 删库前,最后一条正常的业务操作, at 648335612 (记住这个数字)
拉到最前面,找到第一个at 4 (记住这个数字)
4 删除坏掉的库,把原来 迁移的时候把数据库文件 test.sql 重新导入(这个文件的时间和日志的时间是匹配的,binlog文件是在此基础之后记录的)
注:每次重启MySQL服务和刷新日志的话,会产生新的日志文件,如果是多个,根据时间执行执行。
5 执行命令
--start-position=4 //开始操作记录节点(前面at后面的数字)
--stop-position=648334479 //结束操作记录节点(前面at后面的数字)
-d databasename //恢复指定数据库,mysql里面可能有多个数据库,不指定恢复所有库
binlog.000003
|mysql -uroot -p password databasename //登录mysql信息
mysqlbinlog --start-position=4 --stop-position=648334479 -d databasename binlog.000003|mysql -uroot -p password databasename
等待完成,恢复成功。
最后:密码用的复杂一些,记得开启日志(损耗1%的性能左右),记得保存好迁移时的数据库文件。
mysql 数据恢复 binlog相关推荐
- MySQL通过binlog数据恢复
MySQL数据恢复 binlog的作用 修改类型恢复 删除类型恢复 insert类型恢复 删库跑路-彻底删除 删库一时爽,事后火葬场 2020年微盟删库事件 2018年杭州 2017年北京 恢复数据也 ...
- 记录:mysql的binlog日志开启与数据恢复
1.测试使用mysql版本: mysql-5.6.43 2.以下为方便学习所以做了记录,除了第一部分是我自己的环境配置,第二部分大家可参考一下博文. <平头哥的技术博文>平头哥的技术博文 ...
- 天堂2启动mysql就没了_启用二进制日志文件进行mysql数据恢复
启用二进制日志文件进行mysql数据恢复 查看文件/etc/my.cnf中[mysqld]配置块的是否配置log-bin 项,用来记录数据库更改的日志, 然后设置要需要写入日志的数据库或者不要写入日志 ...
- mysql通过binlog日志来恢复数据
简介 在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通 ...
- mysqldump全量恢复_删库不跑路-详解MySQL数据恢复
日常工作中,总会有因手抖.写错条件.写错表名.错连生产库造成的误删库表和数据的事情发生,那么,如果连数据都恢复不了,还要什么 DBA. 相关文章 MySQL备份策略:https://segmentfa ...
- MySQL 数据恢复
MySQL 数据恢复 前言 前两天因为没注意的误操作, 直接把某个数据表清掉了, 心慌慌. 怪自己学艺不精, 当时整了一下午也没把数据找回来. 当晚回来闭关研究, 终于在凌晨1点多整出来了, 特此记录 ...
- MySQL 之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...
- Java代码中,如何监控Mysql的binlog?
最近在工作中,遇到了这样一个业务场景,我们需要关注一个业务系统数据库中某几张表的数据,当数据发生新增或修改时,将它同步到另一个业务系统数据库中的表中. 一提到数据库的同步,估计大家第一时间想到的就是基 ...
- linux mysql恢复数据_删库不跑路详解MySQL数据恢复
作者:程淇铭 出处:https://segmentfault.com/a/1190000020116271 日常工作中,总会有因手抖.写错条件.写错表名.错连生产库造成的误删库表和数据的事情发生,那么 ...
- mysql的binlog意义_带你解析MySQL binlog
前言: 我们都知道,binlog可以说是MySQL中比较重要的日志了,在日常学习及运维过程中,也经常会遇到.不清楚你对binlog了解多少呢?本篇文章将从binlog作用.binlog相关参数.解析b ...
最新文章
- python中国地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果...
- Java Calendar 类的时间操作
- VScode中html怎么引入js,vscode中如何使用typescript,如何自动编译成js文件
- 交换两个变量ab的值PHP,由[交换两个变量的值问题]理解程序的时空复杂度
- 《SpringBoot揭秘:快速构建微服务体系》—第3章3.5节本章小结
- python中的str方法和repr方法_Python中 的 __str__ 方法和 __repr__ 方法的区别有哪些
- C语言中指针的基类型,c – 将指针从一种基类型转换为另一种基类型
- 看到这个我冷汗直冒,还好不是指我……
- ArcGIS下载在线地图影像上篇(手工版)
- 四阶龙格库塔matlab计算例题,四阶龙格库塔法matlab实现
- 计算机为什么要设置用户账号密码,电脑用户名是什么意思(怎么修改及设置用户名)...
- vue html if,vue中v-if使用方法详解
- 新电脑如何进行磁盘分区?
- 腾讯撕开中国NFT的“遮羞布”
- Java Web安全之代码审计
- 汇报措辞:你懂得怎样向领导汇报吗(审阅、审批、批阅、批示、查阅)?
- 视频教程-线上培训上课实录整站设计制作开发全能培训-HTML5/CSS
- 触摸屏I2C驱动移植
- 免费备份工具FreeFileSync
- 刀客建站系统安装流程