在没有备份情况下(被勒索),MySQL数据库、表以及数据被删除等误操作后的找回

转载  Mr. Deng   2020-07-25   28人阅读  0 条评论

在没有备份情况下,MySQL数据库、表以及数据被删除,等误操作后的找回


昨天发现网站不能访问,查看数据库居然被删除了,还发现多了一个数据库PLEASE_READ_ME_VVV,而且还有一些信

To recover your lost Database and avoid leaking it: Send us 0.03 Bitcoin (BTC) to our Bitcoin address 1McksxpysJGSG9a9zHvan5f8Y1nfpDbVYF
 and contact us by Email with your Server IP or Domain name and a Proof of Payment. Your Database is downloaded and backed up on our servers.
 Backups that we have right now: *. 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 10 Days, we will make your database public or use them otherwise.

翻译过来就是

要恢复丢失的数据库并避免泄漏:请将0.03比特币(BTC)发送到我们的比特币地址1Mcksxpysjgsg9a9zhvan5f8y1nfpdbvyf,并通过电子邮件与您的服务器IP或域名和付款证明联系。
您的数据库已下载并备份到我们的 服务器 上。我们现在拥有的备份:*。任何没有您的服务器IP地址或域名和付款证明一起的电子邮件都将被忽略。
如果我们在未来10天内没有收到您的付款,我们将公开您的数据库或使用它们。

百度发现原来是遭遇了比特币勒索病毒,想到自己外网访问的密码也是123456就凉凉了!!!又不能相信搞勒索的这些人,给钱了跑路怎么办

最后还是百度找到—>如果MySQL开启了binlog,记录了用户对数据库更新的SQL语句信息可以找回数据,对数据库进行恢复的

binlog原理:就是保存了你所有的数据库操作(从创建用户,创建数据就开始记录),相当于你重新执行了在执行drop之前所有的增删改查。

以下是我自己处理后的操作记录↓↓↓

第一步:查看自已是否打开了 mysql 的binlog

// 在MySQL查询窗口输入查询
show variables like 'log_bin%';

image.png

log_bin是ON说明mysql是开启了binlog。

找到了binlog的位置,在例如:C:/app/mysql-8.0.18-winx64/data/mysql-bin



在dos窗口输入以下指令:

// 定位文件夹路径
cd C:/app/mysql-8.0.18-winx64/data/mysql-bin//上面找出的文件夹路径

// 然后再输入
mysqlbinlog --no-defaults mysql-bin.000003//误操作的sql、操作时间、End_log_pos(重要的,后面用)

去MySQL查询窗口查到mysql-bin.000003对应的所有End_log_pos:

// MySQL查询窗口输入
show binlog events in 'mysql-bin.000003'

查到当前mysql-bin.000003对应的所有End_log_pos

image.png

第二步:使用binlog恢复文件

修改指令:

mysqlbinlog --no-defaults --start-position=1050 --stop-position=8966568 mysql-bin.000002 |  mysql -h 127.0.0.1 -u root -p -P 3306

参数的具体描述:

start-position=为你想恢复的起始位置的End_log_pos,一般为刚创建数据库的时候

stop-position=为误操作之前的End_log_pos,只要是操作之前就可以

mysql-bin.000002为要恢复的binlog文件

mysql -h 127.0.0.1 -u root -p -P 3306 为你的数据库地址

127.0.0.1为ip

root为用户名

3306为端口号


注意:如果有多个mysql-bin.XXX文件

例如:

mysql-bin.000001

mysql-bin.000002

mysql-bin.000003

就需要先处理000001再000002再000003,从前往后。


而且需要再操作之前记住出问题部分的End_log_pos,以防止出现处理000001时,会将000003文件更新导致无法找到出问题部分的End_log_pos


第三步:恢复完成

执行以上修改指令后,恢复过程视数据库大小时间长短不定, 处理时中间没有可视的状态,处理完就自动第二行。

本文地址:https://www.zjh336.cn/?id=1922
温馨提示:文章内容系作者个人观点,不代表华仔部落对观点赞同或支持。
版权声明:本文为转载文章,来源于 Mr. Deng ,版权归原作者所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?