mysql利用.frm和.ibd恢复数据库表结构和数据

mysql利用.frm和.ibd恢复数据库表结构和数据

1.新建一个数据A。

2.在A数据库中新建一个和要恢复的表一样的表B,标名要一直,表结构随意。

3.在创建好表结构后,关闭mysql服务service mysqld stop,使用要恢复的表B.frm文件覆盖新建的A数据库中的B表的B.frm文件,然后启动mysql服务service mysqld start,查看A库中B表的表结构,大概率会出现:表不存在的错误。

4.此时,查看mysql data目录先 .err结尾的文件,会发现如下信息:InnoDB: Table A/B contains 1 user defined columns in InnoDB, but 6 columns in MySQL 即:我们要恢复的表有6个字段,而我们在创建表的时候只创建了1个字段;若没有报错,可直接查看到建表语句。
解决办法:删除B表,重新创建一个6个字段的B表,具体字段随便,然后重复第二步的操作,完成后即可查看到需要恢复的B表的表结构。

5.复制出B表的建表语句,删除原来的B表,新建B表,

6.执行sql语句:alter table B discard tablespace;将原先的.ibd文件与原先的.frm文件解除绑定

7.将需要恢复的B.ibd文件覆盖这个新建的A数据库的B表的物理文件B.ibd。

8.执行sql语句:alter table B import tablespace;将复制过来的B.ibd文件与B.frm文件发生联系;此时数据恢复完成。

注:备份数据库命令:mysqldump -h主机名 -P端口 -u用户名 -p密码 数据库名 > 文件名.sql
还原数据库命令:mysql -h主机名 -u用户名 -p密码 databasename < backupfile.sql**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值