MySQL只有数据库.ibd文件,如何恢复这个数据库?
最标准恢复方法
假设:
数据库名:
shop表名:
product
一、先安装相同版本 MySQL
尽量和原来:
完全相同版本
相同发行版
二、创建同结构空表
必须结构完全一致。
CREATE DATABASE shop; USE shop; CREATE TABLE product ( ... ) ENGINE=InnoDB;
字段必须:
顺序一致
类型一致
索引一致
否则恢复失败。
三、删除新生成的 ibd
停止 MySQL 后:
删除:
product.ibd
保留:
product.frm
四、执行 discard tablespace
启动 MySQL:
ALTER TABLE product DISCARD TABLESPACE;
这一步会让 MySQL 丢弃当前表空间。
五、拷贝旧 ibd
把你的旧:
product.ibd
复制到数据库目录。
例如:
/var/lib/mysql/shop/
并修改权限:
chown mysql:mysql product.ibd
六、导入表空间
ALTER TABLE product IMPORT TABLESPACE;
成功的话数据就恢复了。


