我在使用mysql数据库。当我使用mysqlworkbench时,所有的.frm文件都意外地从mysql数据文件夹中删除,但是数据文件夹中仍然有ibdata文件。我没有使用innodb_file_per_table,这意味着我所有的无害数据库表数据都在一个ibdata文件中。
不幸的是,我没有备份可以恢复。有人能建议我如何从ibdata文件中恢复数据吗?
发布于 2013-09-05 19:56:34
你的问题似乎与这个堆叠溢出。相同
我在此转载了部分已被接受的答复。
简单的解决方案是找到保存的
CREATE TABLE
SQL副本,在MySQL的开发实例上运行它,然后将生成的FRM文件复制到还原的实例中。如果您无法访问CREATE TABLE
语句,可以尝试以下操作:
create table innodb_table_monitor (a int) ENGINE=InnoDB
drop table innodb_table_monitor
select *
语句工作。如果您错了,您将看到: ERROR 2013 (HY000):在查询期间丢失到MySQL服务器的连接这意味着数据库崩溃了。如果发生这种情况,对dev实例执行create table innodb_table_monitor...
,并将输出与还原实例的原始输出进行比较。你很可能会发现你漏掉了一个NULL或诸如此类的小东西。
https://serverfault.com/questions/536530
复制相似问题