数据库被勒索删除,解决方法

突然数据库被黑了,有一条勒索信息:
To recover your lost Database send 0.018 Bitcoin (BTC) to our Bitcoin address: bc1qe4yefrptv2k8shawu3h84j0n8kyvxfk4wwate5 After this, contact us by email with your Server IP or Domain Name and a Proof of Payment (Payment ID). Your Database is downloaded and backed up on our servers. Backups that we have right now: tiku. Any email without your server IP Address or Domain Name and a Proof of Payment together will be ignored. If we dont receive your payment in the next 5 Days, we will delete or leak your sensitive information.
数据库被勒索删除,解决方法_第1张图片
说到底,还是自身安全做的不够,反思!

先说解决方法。

是否开启binlog

先进入mysql命令行,输入以下命令。

SHOW VARIABLES LIKE 'log_bin%';

数据库被勒索删除,解决方法_第2张图片
可以看到,logbin已经是开启的,并且下方是logbin所在的目录

进入logbin的目录

cd /www/server/data
ls -l

数据库被勒索删除,解决方法_第3张图片
这些bin文件,就是我们的logbin。
我们可以通过修改时间,判断哪个一出现了问题(我发现问题时是1月18日,刚好这个修改日期就是这个)
ps: 因为之后我修改过,所以时间变了,但是日期是同一天。

找到mysqlbinlog 的位置

find  / -name mysqlbinlog -print

在这里插入图片描述
如果/usr/bin没有,可以软连接一下。

导出sql文件

mysqlbinlog --no-defaults -v --base64-output=decode-rows mysql-bin.000012 > nov3.sql
#替换你的logbin文件名,和想要输出的sql文件名

打开sql文件

寻找被删除点

直接翻到末尾,可以看到全部给drop了。

我们先找到在哪里开始删除我们数据库。
在这里插入图片描述
因为数据库多了一个新建的,从这里开始下手,ctrl+F搜索。

数据库被勒索删除,解决方法_第4张图片
可以看到从这里开始创建数据库,并创建了readme表。
根据上面的时间,可以推断出,这里是开始删除我们数据库的位置。
数据库被勒索删除,解决方法_第5张图片
记下删除时的偏移量:11177392

寻找起始位置

数据库被勒索删除,解决方法_第6张图片

起始位置偏移量,在头部:4

开始恢复

 # --start-position="4" 起始位置偏移量
 # --stop-position="11177392" 删库时候的偏移量
mysqlbinlog --no-defaults mysql-bin.000012 --start-position="4" --stop-position="11177392" | mysql -u root -p

输入root密码,回车即可。

中途可能报很多错,可能是数据量太大引起的错误,或者是重复插入之类的,都是sql脚本本身的问题,找到对应的问题就可以解决。

你可能感兴趣的:(开发实战,数据库,mysql,sql)