误删数据库|二进制日志恢复数据库

昨天晚上不知道是不是抽风。为了试用织梦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

一个人输出有价值文章的公众号 「自认为」

本文链接:

https://kite1874.com/index.php/websitecourse/recover-database.html