【已恢复】MySQL服务器被入侵,数据丢失,一招教你恢复数据 0、前言
当时在宝塔安装了MySQL5.7,然后当时只是测试,就直接设置用户名和密码为root,今天在Navicat突然登录不上了,于是在linux下登录MySQL,只剩下一个ReadMe文件,于是打开看了一下:
以下数据库已被删除:dbeco。 我们有完整的备份。 要恢复它,您必须向我们的比特币地址xxxx支付xx比特币(BTC)。 如果您需要证明,请通过以下电子邮件与我们联系。 xxx@xxx.com 。 任何与付款无关的邮件都将被忽略!
然后想着,完蛋了。因为我没有备份数据库。
后来我在网上找了一些数据库恢复方法(mysqlbinlog),今日于此,同大家分享。
版权声明:本文为CSDN博主「第四维度4」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
1、恢复方法 1.1、找到日志文件
找到MySQL的安装目录,如果不记得可以通过ps -ef | grep mysql 查看运行的路径。
在这里我的路径是/www/server/mysql/,但是它的日志存储文件在/www/server/data/,日志文件名字如:mysql-bin.000004 ,找最新的那个。
可以通过mysqlbinlog命令查看具体日志,mysqlbinlog 命令应该在mysql的bin文件目录下,建议都使用绝对路径。
/www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000004
1.2、找到恢复(破坏)点
比如我的数据库被破坏是在 end_log_pos 15100838 这个位置。
1.3、回滚(重新执行)
/www/server/mysql/bin/mysqlbinlog --stop-position=15100838 --database=dbeco /www/server/data/mysql-bin.000004 | /www/server/mysql -uroot -proot -v dbeco!!可能在恢复的时候会出现数据库已经存在,不要去删数据库再操作,在末尾加 -f 选项忽略错误即可
1.4、查看数据库
#登录数据库mysql -uroot -p密码#查看数据库表mysql>show databases;#查看表的内容mysql> use dbeco;mysql> show tables;mysql> select * from dbeco;
然后可以看到数据库的内容恢复回来了。
但是在Navicat依然没有办法正常连接,暂时不知道具体原因,只好把数据库表的内容进行备份(在这里不做详细描述),然后删掉MySQL,重新安装,重新配置,备份还原。如果有其他好方法可以分享,谢谢。
不要设置简单密码!!!
记得定期备份数据库!!!
原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/407.html