开发者社区> 问答> 正文

从frm和ibd文件还原表结构?mysql

我正在尝试在PMA中还原数据库,但只能访问frm和ibd文件,而不能访问我了解您需要的ib_log文件。

我知道我可能无法恢复数据库数据,但是是否可以从frm文件恢复表的结构?

展开
收起
保持可爱mmm 2020-05-17 14:24:26 995 0
1 条回答
写回答
取消 提交回答
  • 我仅从.frm和.idb文件中还原了该表。

    获取SQL查询以创建表 如果您已经知道表的架构,则可以跳过此步骤。

    首先,安装MySQL Utilities。然后,您可以mysqlfrm在命令提示符(cmd)中使用命令。

    其次,.frm使用以下mysqlfrm命令从文件中获取SQL查询:

    mysqlfrm --diagnostic /example_table.frm 然后,您可以获取SQL查询以创建相同的结构化表。像这样:

    CREATE TABLE example_table ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(150) NOT NULL, photo_url varchar(150) NOT NULL, password varchar(600) NOT NULL, active smallint(6) NOT NULL, plan int(11) NOT NULL, PRIMARY KEY PRIMARY (id) ) ENGINE=InnoDB; 创建表 使用上面的SQL查询创建表。

    如果旧数据仍然存在,则可能必须先删除相应的数据库和表。确保您已备份数据文件。

    恢复数据 运行此查询以删除新表数据:

    ALTER TABLE example_table DISCARD TABLESPACE; 这将删除新.frm文件和(新的,空的).idb文件之间的连接。另外,删除.idb文件夹中的文件。

    然后,将旧.idb文件放入新文件夹,例如:

    cp backup/example_table.ibd /example_table.idb 确保.ibd文件可以被mysql用户读取,例如,通过chown -R mysql:mysql *.ibd在文件夹中运行。

    运行此查询以导入旧数据:

    ALTER TABLE example_table IMPORT TABLESPACE; 这将从.idb文件中导入数据,并将恢复数据。来源:stack overflow

    2020-05-17 14:26:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像