宝塔数据库误删恢复教程

Hello,相信各位站长都有过误删数据库的教程今天就教大家恢复误删了的数据库

开始本教程之前请先检查下你的回收站是不是开着,因为宝塔环境默认是开着的,或者数据库是否有近期备份文件,假如回收站开着或者数据库有备份,那么恭喜你,你可以直接恢复了,下面的这些内容就不再需要了。

Screenshot_2022-08-04-15-06-12-96_a252b927494330cdc2c8ba3b3f952e5e

现在请继续阅读本教程,假如你的数据库能够恢复,请在第一时间内开启数据回收站,并增加计划任务里的网站和数据库备份。

在本教程的这种方法里,想要完成mysql的删库恢复,你的mysql必须开启了二进制日志,万幸的是宝塔面板下这一功能是默认开启的,想要确定你的mysql是否开启,最直接的办法,就是去/www/server/data目录下,看看有没有几个mysql-bin文件,像下图这样的:

Screenshot_2022-08-04-15-09-43-88_a252b927494330cdc2c8ba3b3f952e5e

结尾数字可能不是从1开始的,但只要有,那就说明可以继续下一步,假如没有,那么尝试全盘搜索mysql-bin文件,假如哪都没有,那本教程将不适合你。

操作之前,请将mysql-bin文件全部备份下,以免失误带来不可逆的损失。

服务器中假如有其他的数据库,也请提前备份下。

完成备份后我们远程连接服务器用root权限使用以下命令

/www/server/mysql/bin/mysqlbinlog --start-datetime="2021-05-20 15:30:01" --stop-datetime="2021-08-24 12:30:50"/www/server/data/mysql-bin.0000* > redata.sql

其中的/www/server/mysql/bin/mysqlbinlog是mysqlbinlog程序的位置,这样写的好处是不用增加配置系统环境变量,start和stop是划定时间段,注意结束时间不能是删除数据库之后的时间,也就是整个时间段必须在删除数据库之前,假如无法精确,那尽量提前到几天前,开始的时间要早于数据库建立的时间,假如记不清,那可以删掉开始时间,简写为

/www/server/mysql/bin/mysqlbinlog --stop-datetime="2021-08-24 12:30:50" /www/server/data/mysql-bin.0000* > redata.sql

以根据mysql-bin文件的大小和修改时间,确定某个具体的mysql-bin文件,那也可以写具体文件名,例如mysql-bin.000001,一般对应的文件都比较大。

运行上面的命令后进入root目录下查看是否出现了redata.sql文件,该文件大小应该远大于删掉的数据库大小,假如没有生成该文件或者该文件过小,那么尝试下面这条命令

/www/server/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v -d 数据库名 /www/server/data/mysql-bin.0000* > redata.sql

假如一切顺利,你的数据库会恢复到删除前的状态,但有些情况下只能部分恢复。

本次教程到此就结束了如果对您有用不妨评论支持一下

© 版权声明
THE END
喜欢就分享一下吧
点赞12打赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容