mysql 利用ibd文件恢复数据库

mysql 利用ibd文件恢复数据库,需要有原来数据库中表的结构

如果数据库文件非常大的话,这种方式就非常实用了,首先需要备份的数据库上右键——转储sql文件——仅结构导出该数据库的结构的sql文件,然后按照删除表空间——ibd文件复制到新建的数据库下——导入表空间的操作即可恢复数据库中的数据。此法也挺麻烦,需要逐个表进行删除表空间和恢复表空间,还是数据结构和数据 一块备份来的利索。

利用拷贝data目录文件的方式迁移mysql数据库

需要拷贝的文件包括:数据库文件(例如上图所示的gd_base、common、gd_dbwizard等数据库)和  ibdata1  (这个必须拷贝)这个需要验证一下。ibdata1肯定与C:\ProgramData\MySQL\MySQL Server 8.0\Data下的ibdata1冲突,导致现有的其他数据库文件打不开,这个有待验证!!!

项目踩坑之路_InitiativeYu的博客-CSDN博客

 

此方法mysql5.7版本以上适用。
假如你的数据库表都没了,而mysql目录下的data中.ibd还在的话,你可以试试此方法。
创建一个新的数据库
创建一个表(表名与待恢复的表名相同),字段结构跟丢失的一样,
进入该数据库,删除该表空间

例如: ALTER TABLE project DISCARD TABLESPACE;

project是我的表

将project.ibd复制到新建的数据库下,执行命令,导入表空间。

ALTER TABLE project IMPORT TABLESPACE;

这时候查看表,数据就显示出来了

上一篇:mysql无法启动-The innodb_system data file ‘ibdata1‘ must be writable


下一篇:mysql ibdata1文件过大解决