宝塔面板的mysql自动开启了binlog功能~ 也就是说我们可以直接通过binlog方式恢复宝塔误删的数据。
首先找到宝塔面板的/www/server/data文件夹,找到mysql-bin.xxxxx之类的文件
我这里是mysql-bin.000012、mysql-bin.000011,
你是什么时候删掉的数据库,删除时间应该差不多都记得吧,
比如是 2021/06/15 这天删掉的数据,就把mysql-bin.000012这个文件还原成 .sql文件
怎么还原呢?在终端中输入如下命令:
# 注意:mysqlbinlog的文件位置 与 mysql-bin.000012的文件位置,可能跟你那的位置稍微有点区别
/www/server/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v /www/server/data/mysql-bin.000012 > /www/1.sql
这样就能把这文件的备份数据还原出来了~
我们看看解压出来的内容(在 /www/1.sql):
嗯,一大堆无用数据……怎么办呢?我们需要进行筛选,这里我使用的是vscode,由于我删的是整个数据库,所以我在vscode中搜索了这个关键词(增删改)
正则表达式如下:
^.*((INSERT INTO `)|(UPDATE `)|(DELETE FROM `)).*$
然后使用vscode自带的功能,更改所有匹配项,选中包含这个关键词的所有行后,在复制到一个新标签页中
这个数据看起来舒服多了,上面那些表结构对于我来说没有意义就删掉了,我把后面的insert、delete、update等操作保留下来,
再在每行末尾上加个分号(也可以使用vscode进行一键操作),最后保存一下(后缀为.sql)
然后直接去phpMyAdmin上或其他图形化工具上,导入该sql脚本文件就行了~
注意执行顺序,然后这个库就完整恢复啦~!
注意:并不是所有的数据都能恢复回来的哈,可能有些数据看起来会很乱不好恢复,或者恢复了又出现什么问题...... 这个等你们试过一遍就知道了,嘿嘿[旺柴]
所以请大家千万要注意数据库备份!!!