因自己本想格式化自己数据库,无奈格错了朋友的数据库,还好朋友数据他有备份,但是备份文件里只有.frm和.ibd的文件,还有一个opt的文件.上网查了下,idb后缀的文件是innodb的,故请教怎么恢复innodb的数据文件,里面的不知道有什么字段,因为不是自己设计的表,
也百度过,都说用percona data recover tool这个工具,但是没有成功,
win下不知道有没有工具?
1
lyragosa 2015-05-26 17:07:17 +08:00
innodb如果只有“数据库文件”的备份,估计有点麻烦。
innodb因为其特殊的格式,使得完美备份方法只有 - mysqldump 不用说 - binlog回滚 - 主从 单纯备份/var/mysql 下的文件会作死……我就作死过一次…… |
2
billlee 2015-05-26 17:20:27 +08:00
有 idb 和 frm 应该就可以了,<表名>.idb 是表数据,<表名>.frm 是表结构,db.opt 是数据库级别的一些额外的选项(比如默认字符集)
恢复后把这些文件放回 /var/lib/mysql/<数据库名>/ 下面应该就可以了。 |
4
xfack OP @billlee 这个办法试过了,数据库和表名是出现了,可是用navicat premium点击打开报错
报错: 1033 - Incorrect information in file '.\web\user.frm' |
5
billlee 2015-05-26 18:03:58 +08:00
@xfack 如果能记得数据表结构,可以试试创建一个同样结构的表,然后关闭 mysql 服务器,用备份的 idb 替换掉新的 idb 文件。
|