来源:深圳沃龙软件开发公司 2019-04-01
前2天服务器的数据库被黑客删除了,早上一来发现如下图:
黑客给新建了数据库,PLEASE_READ_ME_XMG,要充比特币呢,CTM的。好在我已经提前开通了mysql binlog日志
现在记录一下数据库是如何恢复的,纯粹干货:
前提:
是再数据库还未被删除前,你开启了mysql的binlog日志,如果没开启,那我也不知道怎么搞,目前还没弄过。
(开发或运维人员,一定要长记性,线上项目一定记得要开启mysql binlog日志,要不然数据库可能就没法恢复了,不知道怎么开启的,参考:
https://www.cnblogs.com/handle/p/9761702.html)
如果你的项目已经开启了mysql binlo记得往下看,否则请return;
像我的就已经开启了,会显示如下:
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
It's not my first time to pay a visit this site, i am visiting this site dailly and obtain nice information from here all the time.
Your Sttyle is unique compared to other people I have read stuff from. Thank you for posting when you have the opportunity, Guess I will just book mark this page. Multimedia Engineering Informatics Engineering Internet Engineering Language Center International Studies Electronics Engineering telecoms electrical engineering computer engineering
发表评论