记mysql数据库文件被破坏还原过程

故事,呸,应该是事故...发生在去年年底,一个用户不知道什么”操作“导致了MySQL数据库服务启动未遂,看的我一脸蒙圈,没办法,用户是上帝!

经过发现,用户本地的数据库文件还是好的,即本地的MySQL的数据文件路径下的data文件夹下的内容还在,经过多次的查阅资料,最终确定了解决方案。---- 清空现有的数据库(表),重新生成数据库(表)。

开整,第一步:数据文件备份(万一失败了源数据都没了就麻烦大了)

 

 第二步:删除现有的数据库下对应的除 opt 以外的所有的数据【说明:一般来讲,opt表示数据库文件、frm表示数据库表结构文件、ibd表示数据库文件】

 

 第三步:这一步十分关键,需要创建知识表的结构,即frm文件,经过百度,通过dbseeker for frm 文件可以解决,右转百度即可下载,下载之后双击bat文件如下图:

 

第四步:点击按钮选择备份的文件中的某一个库的所有的frm文件,如下图:

 

 第五步:复制生成的sql文件到navicat执行语句创建数据库表:

 

 第六步:后续的原理解析

【1. 解除新生成的表的结构与内容的关系,关键词为discard;

   alter table 表名 DISCARD TABLESPACE;

 

 需要取消某一个数据库下面的所有的数据库表的关联关系。

    2. 停止mysql服务;

 

     3. 导入备份的idb文件;

 

     4. 启动mysql服务将备份的ibd文件与新生成的表进行关联【关键词 import

alter table 表名 IMPORT TABLESPACE;

 

    5. success... 

 

 】

写在最后,MySQL这次故障的解决的前提是frm文件和ibd文件没有被破坏,如果被破坏了,跑路吧

 

 

posted @ 2021-03-04 17:00  水能载舟亦能载艇  阅读(196)  评论(0编辑  收藏  举报