mysql数据恢复——利用*.frm和*.ibd

当ibdata1文件丢失,只剩*.frm和*.ibd文件,数据恢复案例

frm文件生成对应的表结构

  1. mysqlfrm工具安装
  2. 解析文件得到表结构
    • 打开cmd,cd到data/数据库名 目录下,执行以下解析命令
    • mysqlfrm --server=root:password@localhost mydb:mytable.frm --port=3304
      • password为数据库密码 如果没有可以不填
        • 例如:mysqlfrm --server=root@localhost mydb:mytable.frm --port=3304
      • mydb为数据库名,mytable为表名
    • 执行后稍等片刻就会在命令行打印出创建表的sql语句
      • 如果乱码,可执行 chcp 65001来使用UTF-8编码,再次执行解析命令
    • 创建数据库(mydb),复制出来利用sql管理工具执行去创建表(如果执行之前数据库中已经存在表则先删除此数据表然后再执行sql语句)
    • 此时数据库和表结构已经恢复完毕
  3. 恢复数据表里面的数据
    • 执行命令: ALTER TABLE `数据库名`.`表名` DISCARD TABLESPACE,可实现删除现有*.idb文件
    • 把备份的*.ibd文件拷贝到data目录下的数据库文件夹下
    • 执行命令: ALTER TABLE `数据库名`.`表名` IMPORT TABLESPACE
    • 稍等片刻,数据恢复成功
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值