大前天晚上不知道是不是抽风。为了试用织梦CMS,竟然把做好的网站VPS当成了另外一个用来折腾的VPS。不小心把网站数据库的数据给删了,由于自己该死的粗心大意,完全没有备份。 当时真TM的想给自己一巴掌!差点哭出来了。 以前还看过不少删库跑路的笑料。真没想到今天我也落个这样的下场。
后来不断在网上搜索抢救的方法,发现了二进制日志这种东西可以恢复。发现自己有开启bin-log「要开启才会成二进制日志」,那一刻感觉上帝还是爱我的!经过那天晚上熬夜抢救终于恢复了!
附上网站网址:https://www.read008.xyz/
由于自己是完全小白,对数据库也不懂。花了很大的力气才抢救回来。准备写写这个过程,大家引以为戒。写个教程,以备这种情况的发生!还有帮助遇到同样问题的朋友。一定要养成备份的习惯!!!!
恢复原理:通过二进制日志生成sql文件,再运行sql文件重新录入数据。
如果对着我这教程操作的,推荐先看完再操作,看看哪些地方疑惑的,再百度。不要盲目操作。
在发现自己不小心删除了数据库的时候,先检查自己有没有备份,如果没有再看看有没有生成二进制日志,名字是以这种「 mysql-bin.xxxx 」的格式保存的。我自己比较菜,网站用的BT宝塔面板来搭建的。
二进制日志路径
二进制日志存放的路径是你数据库的设定有关的。BT面板是默认放在这个位置。
二进制日志
就是这几个白花花的救命稻草!
然后你需要用SSH链接你的VPS「这就不多说了,会搭建网站应该都会的」。
连接数据库
使用命令: mysql -u用户名 -p密码 「账号密码是你安装数据库时候设置的」
链接成功
账号密码都正确的话,就这个样子
全部二进制日志
如果你不是用BT宝塔面板来操作你的网站的,你需要用 show binary logs 来查看全部二进制日志。
知道我们的二进制日记有哪些之后,使用 CTRL+C 退出断开数据库。
好戏开始!
然后输入: /www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000005 >/www/server/data/hufu5.sql
你有多少个二进制日志文件,就执行多少次「不包括最后一个二进制日志」
例如: /www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000006 >/www/server/data/hufu6.sql
注意我框起来的位置。这些路径不一定和你的相同。 如果是BT宝塔面板搭建的网站,应该是跟我一样的。 具体是什么你自己去查看。主要找出mysqlbinlog 、mysql-bin.xxx 这俩的位置。最后那个路径的是存放你创建的sql文件的位置,路径和文件名可以随意,但是也要记得放在哪里。
注意:最后一个二进制日志和上面的执行语句不同。因为你删除数据库的记录也在日志里面。你需要除掉这个记录,不然恢复的数据库又会被删掉!
/www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000009 –stop-datetime=”2019-01-21 20:00:00″ >/www/server/data/hufu9.sql
这个语句和上面那个的区别,就多了 –stop-datetime=”2019-01-21 20:00:00″ 我删库的时间大概是 20:30:00 左右。 为了避免把删除数据库的记录也生成在sql文件中,这里的时间要取删掉数据前的时间。具体时间我是不知道的,所以我提前了半个小时。 还可以通过点的方式来取回数据,我就不演示了。自己自行百度。
上面操作完了,就已经用二进制日志生成了对应的sql文件了。
在回复之前我们要创建一个和你的删掉的数据库一样名字的数据库。用BT宝塔创建就不说了。如果是命令行用 create database 数据库名称「我恢复的时候是创建了的,不知道是不是必须的」。
最后。依次运行生成的sql文件就可以了「生成多少个就运行多少个」
命令:source 文件所在路径/xxx.sql
运行完之后打开你的网站看看。看看是否正常
如果这个教程对你有用的话,可以在下面留言。让大家看看不只我一个人这么傻。
个人公众号:kitelife
网友评论