mysql根据mysqlbinlog恢复找回被删除的数据库
年初和朋友一起做了个项目,到现在还没收到钱呢,今天中午时候突然听说之前的数据库被攻击了,业务数据库全部被删除。看有没有什么办法恢复,要是恢复不了,肯定也别想拿钱了吧?
| README FOR RECOVERY DATA |
|---|
| All your databases was backed up. You need to email us at xednydy@fexbox.org to recover your data. If the payment is not received within 48 hours, all your data will be deleted and used for our purposes |
| BITCOIN adress for pay bc1q8hsych64d5l79s8sztl3x7xj4u0rerltug9zcu 0,008 BTC |
| Bitcoin can be purchased with Alipay from: CoinCola: https://www.coincola.com/?lang=zh-HK BitValve: https://www.bitvalve.com/buy-bitcoin/alipay |
| Or another way: MoonPay: https://www.moonpay.com/buy Paybis: https://paybis.com/ Changelly: https://changelly.com/buy |
| After paying write to us in the mail with your DB IP: xednydy@fexbox.org and you will receive a link to download your database dump. |
打开数据库后就看到只剩下mysql和README FOR RECOVERY DATA数据库,自己创建的数据库已被删除,顺着打开README数据库中仅有的一张表README FOR RECOVERY DATA。大概意思就是您的数据库已被攻击者备份了 请48小时内用比特币支付。如果48小时内没有付款 数据将被删除。这不是赤裸裸的上演了互联网勒索嘛。
观察BinLog日志文件
进入mysql数据存放目录
-rw-r----- 1 polkitd input 56 Jan 5 2023 auto.cnf
-rw-r----- 1 polkitd input 2983124 Jan 5 2023 binlog.000001
-rw-r----- 1 polkitd input 157 Jan 5 2023 binlog.000002
-rw-r----- 1 polkitd input 157 Jan 5 2023 binlog.000003
-rw-r----- 1 polkitd input 2235 Jan 5 2023 binlog.000004
-rw-r----- 1 polkitd input 180 Jan 5 2023 binlog.000005
-rw-r----- 1 polkitd input 153788296 Jul 31 14:40 binlog.000006
-rw-r----- 1 polkitd input 96 Jan 5 2023 binlog.index
能看到binlog最新的一个文件binlog.000006 貌似还没有被删除。尝试用日志还原试一试
ps:这里如果binlog文件都被删除了的话 估计真不好恢复了。
基于mysqbinlog工具恢复数据
mysqlbinlog工具是把二进制的binlog转换为文本格式,通常情况下就会用到mysqlbinlog 日志管理工具。
在mysql安装目录下 bin目录中正常会有一个工具命令行叫mysqbinlog 如果是跑在docker中的mysql可能是没有这个命令的。需要从别的地方复制过来,复制数据库命令版本需要和当前恢复的数据库版本一致。比如我这里就是因为安装在docker中的数据库,没有mysqlbinlog工具。
先从官网下载数据库包 解压后 ,把bin中的mysqlbinlog复制到docker中进行执行。 如果有mysqlbinlog工具跳过此步。
Usage: ./mysqlbinlog [options] log-files
-d,-database-name:指定数据库名称,只列出指定的数据库相关操作。
-o,-offset=#:忽略掉日志中的前n行命令。
-r,--result-file=name:将输出的文本格式日志输出到指定文件。
-s,--short-form:显示简单格式,省略掉一些信息。
-set-charset=char-name:在输出为文本格式时,在文件第一行加上 set names char-name,这个选项在某些情况下装载数据时非常有用。
--start-datetime=name,--stop-datetime=name: 指定日期间隔内的所有日志。
--start-position=#, --stop-position=#:指定位置间隔内的所有日志。
常用就参数项就以上几个。
这里假定我们恢复到binlog.000006文件中的内容。
mysqlbinlog binlog.000006 > /root/binlogtxt.sql
执行完成之后 /root/binlogtxt.sql文件中上百兆的语句。我想大概率是妥了。
恢复到数据库中。
mysql -uroot -p
source /root/binlogtxt.sql
像我这里的场景是因为数据库被drop了。恢复的时候需要注意 只需要恢复到drop前一步就行。如果全部日志恢复后发现还是没有数据库,可能是恢复后又自动被日志中drop语句删除了。
怎么知道恢复到哪一步之前呢?
1、可以打开/root/binlogtxt.sql文件 看到drop database语句后就注释了。
2、./mysqlbinlog 导出文本的时候 设置时间段或者position位置。
打了navicat看了一下 果然恢复成功了 表结构和数据都恢复的很完美。
mysql根据mysqlbinlog恢复找回被删除的数据库的更多相关文章
- KingbaseES V8R6备份恢复案例之--删除test数据库后sys_backup.sh备份
案例说明: KingbaseES V8R6通过sys_backup.sh执行物理备份,默认sys_backup.sh执行备份初始化时,需要连接test数据库进行身份的认证:在一些生产环境为了安全需求, ...
- 不小心删除数据--利用MySQL的binlog恢复数据
MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库.用于slave端执行增删改,保持与maste ...
- CentOS下利用mysqlbinlog恢复MySQL数据库
如果不小心对数据库进行误操作,而又没有及时备份怎么办?这恐怕是广大的coder经常遇到的一类问题.我今天就因为不小心删除了某个数据库,但最后的备份是1个礼拜前的,唯一能解决的办法就是通过mysqlbi ...
- MySQL使用mysqldump+binlog完整恢复被删除的数据库
(一)概述 在日常的MySQL数据库运维过程中,可能会遇到用户误删除数据,常见的误删除数据操作有: 用户执行delete,因为条件不对,删除了不应该删除的数据(DML操作): 用户执行update,因 ...
- mysql数据安全之利用二进制日志mysqlbinlog恢复数据
mysql数据安全之利用二进制日志mysqlbinlog恢复数据 简介:如何利用二进制日志来恢复数据 查看二进制日志文件的内容报错: [root@xdclass-public log_bin]# my ...
- 【转】【MySQL】mysql 通过bin-log恢复数据方法详解
mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这 ...
- mysqlbinlog恢复数据-update20140820
mysqlbinlog恢复数据 BINLOG就是一个记录SQL语句的过程,和普通的LOG一样.只是它是二进制存储,普通的是十进制存储. ================================ ...
- Mysql之日志恢复
对于Mysql,每一步操作都会有相应记录,如insert,update,delete ,drop ,alter等相关DDL或DML操作.有时难免会出错,但在出错时如何恢复以复原数据. 例如,现在有这些 ...
- MySQL 复制+快照恢复误删除操作实验测试
下面假定2个场景: 场景1:主从架构,没有延迟,某DBA误操作:drop database [复制+快照:在线备份]场景2:存在不确定性或者风险性较大的操作,如升级测试,大表变更[啥事都在快照上折腾, ...
- mysqlbinlog恢复数据
操作命令: 复制代码代码如下: show binlog events in 'mysql-bin.000016' limit 10; reset master 删除所有的二进制日志flush logs ...
随机推荐
- 使用Jmeter进行CPU、内存等监控
一.需要的准备 1.jp@gc - PerfMon Metrics Collector插件(安装方法就不过多介绍啦!) 2.ServerAgent服务器(下载:https://github.com/u ...
- 【Dotnet 工具箱】DotNetCorePlugins- 动态加载和卸载 .NET 程序插件
你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! 1. DotNetCorePlugins- 动态加载和卸载 .NET 程序插件 DotNetCore ...
- 「微服务」这10道Consul面试题值得一看
前言 Consul 是一种非常强大的分布式服务发现和配置管理工具,它可以帮助开发人员和运维人员更好地管理和维护分布式系统. 但是,使用 Consul 也需要投入一定的人力和物力,需要根据实际情况进行选 ...
- 2021-03-25:如何把长url转换为短url?
2021-03-25:如何把长url转换为短url? 福大大 答案2021-03-25: 1.长url和短url一一映射.想采用某种算法,把长url和短url做一一映射.后来发现,这种方法是行不通的. ...
- Go开源世界主流成熟ORM框架gorm实践分享
@ 目录 概述 定义 核心功能 声明模型与约定 gorm.Model 字段级权限 时间惯例 嵌入结构 字段标签 使用 安装 数据库链接 连接池 CRUD 接口 创建 查询 高级查询 修改 删除 原始S ...
- odoo开发教程八:qweb引擎
一:简介 QWeb是一个基于xml的模板引擎,用于生成HTML片段和页面,模板指令是写在xml标签中的以t-开头的属性,比如t-if如果要让一个标签不被渲染,可以采用t来包裹,这样会执行它里面的命令但 ...
- ISIS 综合实验;BGP 实验
目录 ISIS 综合实验 实验拓扑 实验需求 实验步骤 1.配置相应接口IP地址及环回口地址 2.配置 IS-IS,要求全网互通,R8的Loop X口暂不宣告 3. R1和R3直连,要求 R3 成为 ...
- [汽车]车架号(VIN)的设计与规范
1 车架号概述 VIN是英文Vehicle Identification Number(车辆识别代码)的缩写,也就是我们平时所说的车架号.大架号. 总共由17位字符组成,是汽车唯一的身份识别信息,好比 ...
- CANoe_系统变量的创建过程
在Canoe中创建系统变量,可以用于定义和管理与CAN网络通信相关的参数和配置.遵循以下步骤: 1.打开Canoe 启动Canoe软件. 2.打开项目 在Canoe的菜单栏中,选择"File ...
- 深入分析:恒虚警率检测算法之Switch-CFAR
转发和使用请注明来源,以下为本人精心整理,还请尊重本人劳动成果与产权!由于本人现有知识和能力有限,如存在错误之处请指正!下面为正文内容: 1.S-CFAR检测算法(Switching,开关CFAR) ...