gpt4 book ai didi

mysql - 从frm和ibd文件恢复表结构

转载 作者:行者123 更新时间:2023-11-29 17:55:35 24 4
gpt4 key购买 nike

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

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

最佳答案

我仅从 .frm 恢复了该表和.idb文件。

获取用于创建表的 SQL 查询

如果您已经知道表的架构,则可以跳过此步骤。

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

  2. 其次,从.frm获取SQL查询使用mysqlfrm的文件命令:

    mysqlfrm --diagnostic <path>/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 <path>/example_table.idb

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

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

ALTER TABLE example_table IMPORT TABLESPACE;

这将从 .idb 导入数据文件并将恢复数据。

关于mysql - 从frm和ibd文件恢复表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48878550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com