首页 各类教程

看完记得一定要开启回收站

宝塔面板的mysql自动开启了二进制日志功能,所以只要二进制还在,就可以恢复

事情经过

昨天想把播放器项目搬到朋友宝塔站上,要来宝塔信息后,朋友说有几个文件夹删除过一会自动恢复,让我看看
经过一系列操作,可算是弄好了
但看到他网站管理有几个网站名称和绑定的域名不符合,由于本人强迫症,决定要给弄一致
结果 啪 把旧网站删除的时侯,根据惯性把数据库也给勾选上了
360截图20201220081631730.jpg

当时我朋友还发着,要是把他数据弄没了,就来砍我
QQ截图222220201220082035.png
QQ截图120201220081959.png
QQ截图333320201220082111.png

询问有没有备份时侯,得知没有我便开始了长达4个多小时的百度之路
QQ截图444420201220082152.png

sql.jpg
2s.jpg
sql3.jpg
只是其中一点截图


恢复方法

首先找到宝塔面板的/www/server/data文件夹,看看里面有没有mysql-bin.xxxxx之类的文件,如果有那恭喜你可以进行下一步了
找和删除时间最近的一个
ssssss.png

将他转换成sql文件,方便下载到本地找东西
QQ图片20201220083450.png

本地打开文件,发现有很早的数据,也有一大把其他网站的数据
QQ截图20201220083601.png

而我要恢复数据库名987248里面的文件,搜索987248
2.png

如上图点 上一个 即可得到987248库删除当天最后的一个
最后的一个对应的是# at 22583433 记录22583433
22.png

再往上面划,找今天时间为00:00的
1.png

对应的是# at 20839614 记录20839614


回到宝塔

手动创建987248的数据库
4444444443.jpg

点击命令
mlx.jpg

输入以下命令

/www/server/mysql/bin/mysqlbinlog --no-defaults /www/server/data/mysql-bin.二进制文件名字 --start-position="开始行" --stop-position="结束行" | /www/server/mysql/bin/mysql -u root -p数据库密码(root的)

我要恢复行是: 开始22583433 结束20839614 root数据库密码是123456 二进制文件名是000027
所以指令是:

/www/server/mysql/bin/mysqlbinlog --no-defaults /www/server/data/mysql-bin.000027 --start-position="22583433" --stop-position="20839614" | /www/server/mysql/bin/mysql -u root -p123456

执行完后,你的数据就回来啦 所以下次一定要开启回收站


常见错误

  1. 问题原因: 没有找到pay_order的表
    解决办法: 去数据库创建pay_order的表或导入原来的数据库(需把数据库里面东西清空掉)

QQ图片20201220085626.png

  1. 问题原因: 某些东西和主键重复了,导致无法继续恢复
    解决办法: 手动删除二进制里面重复的

如果重复数据很多,处理量太大,就没有解决办法(网上办法解决不了)
QQ图片20201220085953.png


其它

有偿服务

如果你看完一头雾水,不会操作又想恢复,可以联系我的QQ: 24677102,付费10元人民币将为您尽量恢复(无论恢复成功还是失败都将不退款)



本站已关闭评论
如有事请联系QQ:24677102
微信:phpxuan