我拥有MySQL的.frm文件中的所有数据。如何恢复数据?我不想恢复所有这些,只是一些记录和表格,所以我需要从它们中进行转储。
从我所看到的,只有.frm文件,没有.myd文件。但是,有ibdata1文件。我该如何恢复?
答案 0 :(得分:6)
我明白了。
1)我创建了一个空数据库,以我本地安装中服务器上真实数据库的名称命名。
2)我杀了“mysqld”
3)我将三个ib *文件复制到我的本地MySQL数据目录(在Windows上,它是根驱动器中的隐藏文件夹)。确保您复制到InnoDB数据文件目录,具体取决于您的my.cnf InnoDB和MyISAM数据可能存储在不同的文件夹中。我还复制了.frm文件。
4)我跑了"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files (x86)\MySQL\MySQL Server 5.1\my.ini" --innodb-force-recovery=6
5)我运行mysql -uroot -pmypass
确认use mydb; select * from mytable;
返回结果。
6)我使用了mysqldump mydb mytable --compact > file.sql
就是这样!
答案 1 :(得分:1)
非常简单的步骤。
在Xampp控制面板中,单击MySql的配置,然后选择“ my.ini”文件。
在此文件中,在innodb_file_per_table=1
行之后添加[mysqld]
行。
现在,我创建了一个要恢复的数据库,例如名称为exam_table
创建一个要恢复的表,名称为exam_time
。
运行SQL查询/查询ALTER TABLE `exam_time` DISCARD TABLESPACE;
警告:这将删除当前的.ibd文件。
将备份exam_time.frm
和exam_time.ibd
文件复制到适当的数据库目录。
运行SQL查询/查询ALTER TABLE tbl_name IMPORT TABLESPACE;
检查您的exam_time
表是否已恢复..... Hurrahhh