前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql从删库到跑路 基于mysql8 MYD MYI SDI数据库恢复

Mysql从删库到跑路 基于mysql8 MYD MYI SDI数据库恢复

作者头像
逍遥子大表哥
发布2021-12-19 12:57:44
2.9K0
发布2021-12-19 12:57:44
举报
文章被收录于专栏:kali blog

Mysql是最常见的关系数据库,因开源和免费被广泛使用。如果当我们数据库误删后,在没有备份的情况下如何恢复数据库呢?

Mysql8.0数据库恢复

环境
  • Windows Linux
  • Mysql8.0.12
  • PHP7.4
  • Dzx3.4
故障描述

有网友联系我,说自己的dz站不小心删库了!本地没有备份,已经运维了好几年了。看能不能恢复,在咨询后发现他用的小皮面板,很显然没有做好备份功能!在查阅一番后,知道了自Mysql8.0后,当用户创建了数据库后,会在MySQL8.0.12\data目录下产生相应的恢复文档,用于后期的恢复!当然Mysql之前的版本也有这个功能,但是文件格式变了!

文件

说明

XXX.sdi

表结构文件

XXX.MYD

数据文件

XXX.MYI

索引文件

我们可以利用这三个文件完成对数据库的恢复

删库恢复测试

1.我们首先创建一个数据库bbskali

代码语言:javascript
复制
create database bbskali;

2.创建数据表 并建立相应的字段

代码语言:javascript
复制
CREATE TABLE `bbskali`.`nbkali` ( `id` INT(255) NOT NULL , `name` CHAR(255) NOT NULL , `nmuber` INT(255) NOT NULL , `age` INT(255) NOT NULL ) ENGINE = MyISAM;

3.删除数据库

4.我们在date目录下可以看到刚才建立的数据库bbskali的文件夹,以及有关表的相关文件。

5.将文件复制出来,并新建数据库bbskali2和表nbkali(建立字段,不填数值。)

6.继续会到date目录,会有下面结构。

前后对比,我们发现只有.sdi文件名不一样。先把旧表数据.MYD .MYI替换新表.MYD .MYI,然后将新表的.sdi给旧表重命名后替换!

7.重启数据库,就可以看到数据已恢复!

Dz3.4删库恢复

基于上面的恢复策略,我们可以去恢复误删的dz的数据库。

但因为dz表比较多,站点数据较大等因素,一个个新建表去恢复不现实!

解决思路如下:

1.重装dz论坛系统,我们我们就得到了dz的表结构。

2.复制原站的date目录,将里面MYDMYI全部替换,然后去找对应的.sdi文件,将其重命名后在替换。

3.重启数据库

弊端

1.当数据表较多时,不建议用此方法,除非迫不得已!

2.不能恢复dz插件的数据,因为没有插件的.sdi

的文件信息

3.对于dz我们可以只恢复用户表帖子表即可!其他的我们可在后台再次设置!以下是dz部分表的信息!

用户表信息:

表名

说明

pre_common_member

帖子用户表

pre_ucenter_members

uc用户表

pre_ucenter_memberfields

用户id表

帖子信息表

表名

说明

pre_forum_post

帖子文章表

pre_forum_thread

帖子内容

pre_forum_threadimage

帖子图片

版权属于:逍遥子大表哥

本文链接:https://cloud.tencent.com/developer/article/1921480

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mysql8.0数据库恢复
    • 环境
      • 故障描述
        • 删库恢复测试
        • Dz3.4删库恢复
          • 弊端
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档