## 背景:服务器中,MySQL程序坏了,也没有做定时备份的操作。为了是数据库恢复到最新的。
## 方法:可以使用MySQL的 .ibd 文件恢复。(需要原数据库的表结构)
## 文件位置:在Ubuntu系统中,默认位置是:/var/lib/mysql .ibd文件就在这个目录下。
1、单个表恢复的情况
1.1、停止MySQL程序,备份.bd文件(若程序已经无法启动,则直接备份)
1.2、用原来表结构建表。
1.3、删除新建表的表空间。
ALTER TABLE 表名 DISCARD TABLESPACE;
1.4、将备份好的.ibd文件,复制到目标数据库数据ibd文件的目录下,并修改.ibd文件权限。
sudo chmod 777 表名.ibd
1.5、重新导入表空间即可恢复数据(无需重启目标数据库服务)
ALTER TABLE 表名 IMPORT TABLESPACE;
1.6、执行完后,刷新数据库 原来的数据就已经恢复。
2、多个表批量恢复的情况
2.1、批量拼接数据库中所有表的 删除表空间语句。
SELECT concat('alter table ', table_name, ' discard tablesp