分类: 系统运维
2017-06-01 12:05:47
一次误操作,把ibdata1给覆盖了。网上找到相关资料,特此记录。原文:http://www.cnblogs.com/GmrBrian/p/3963653.html
mysql存储在磁盘中,各种天灾人祸都会导致数据丢失。数据被误删除了,或者ibdata损坏了怎么办呢?别担心,只要有部分的frm、ibd存在就可以恢复部分数据。
注意:
一、这个是对innodb的数据恢复。myisam不需要这么麻烦,只要数据文件存在直接复制过去就可以。
二、大家的mysql数据库必须是按表存放数据的,my.cnf的设置为 innodb_file_per_table = 1。默认不是,如果不是,不好意思,这个方法不能恢复你的数据。
参考 http://blog.chinaunix.net/uid-24111901-id-2627876.html
1、找回表结构,如果表结构没有丢失直接到下一步 (我测试环境有完整的表结构,所以直接跳过了这一步)
e、再启动数据库,查看报错日志,如果字段不一样,会报错,再根据报错,按提示的,有多少个字段就新建多少字段。
2、找回数据。记得上面把 innodb_force_recovery改掉了,需要注释掉,不然恢复模式不好操作。 这里有个关键的问题,就是innodb里的任何数据操作都是一个日志的记录点。也就是如果我们需要数据恢复,必须把之前的表的数据的日志记录点添加到一致。