mysql 数据库被黑客删除,怎么恢复

来源:深圳沃龙软件开发公司     2019-04-01

前2天服务器的数据库被黑客删除了,早上一来发现如下图:

 image.png

黑客给新建了数据库,PLEASE_READ_ME_XMG,要充比特币呢,CTM的。好在我已经提前开通了mysql binlog日志

现在记录一下数据库是如何恢复的,纯粹干货:


前提:

     是再数据库还未被删除前,你开启了mysql的binlog日志,如果没开启,那我也不知道怎么搞,目前还没弄过。

     (开发或运维人员,一定要长记性,线上项目一定记得要开启mysql binlog日志,要不然数据库可能就没法恢复了,不知道怎么开启的,参考:

    https://www.cnblogs.com/handle/p/9761702.html) 

如果你的项目已经开启了mysql binlo记得往下看,否则请return;

像我的就已经开启了,会显示如下:

 

image.png


1、我们看到上图的mysql-bin0000 许多日志,可以后面时间,大致是哪天创建生成的,手动把这2个最近的文件,手动拷贝到测试服务器或者本地,。

2、新建一个数据库,比如 test2

3、执行   mysqlbinlog --no-defaults --start-datetime="2019-03-11 16:30:00" --stop-datetime="2019-03-29 04:25:00" /var/log/mysql/binlog/mysql-bin.000015 | mysql -uroot -proot123 test2

如果你想把mysql binlog导出sql,可以执行如下命令:

 mysqlbinlog --no-defaults /data/mysql/mysql-bin.000015 >/usr/src/yulong15.sql


4、这样就把mysql-bin.000015日志的中数据,从 2019-03-11 16:30:00 日期开始的数据,恢复到 新库test2中了。


5、再新建一个数据库test3,把原来几天前的备份数据,导入到test3中


6、比较test2个库,可test3库中的表的差异,就可以了


备注:如果用sql语句修复,先把备份文件导入到新库中,把mysql-bin导成sql。

再把sql脚本中的,update,delete全部注释,只执行insert。

再把update,delete注释去掉,注释insert,执行 update,delete语句(如果碰到语法错误,需要把库恢复到最原始执行,sql脚本只能执行一次,防止执行多次,数据不对)

 

本内容皆为 深圳沃龙软件开发公司 原创
如需转载,请注明文章出处和来源网址:http://www.wooolong.com/blog/19.html

全部评论

暂无评论

发表评论