Ubuntu如何利用.ibd文件恢复MySQL数据?
- 手机
- 2025-09-04 13:36:02

## 背景:服务器中,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 表名.ibd1.5、重新导入表空间即可恢复数据(无需重启目标数据库服务)
ALTER TABLE 表名 IMPORT TABLESPACE;1.6、执行完后,刷新数据库 原来的数据就已经恢复。
2、多个表批量恢复的情况2.1、批量拼接数据库中所有表的 删除表空间语句。
SELECT concat('alter table ', table_name, ' discard tablespace;') FROM information_schema.tables WHERE table_schema = '数据库名称';±-----------------------------------------------------------+ | concat('alter table ‘, table_name, ’ discard tablespace;’) | ±-----------------------------------------------------------+ | alter table config discard tablespace; | | alter table sysconfig discard tablespace; |
2.2、然后复制下来,执行所有语句。
2.3、批量拼接数据库中所有表的 导入表空间语句。
SELECT concat('alter table ', table_name, ' import tablespace;') FROM information_schema.tables WHERE table_schema = '数据库名';±----------------------------------------------------------+ | concat('alter table ‘, table_name, ’ import tablespace;’) | ±----------------------------------------------------------+ | alter table config import tablespace; | | alter table sysconfig import tablespace; |
2.4、然后复制下来,执行所有语句。
2.5、执行完后,刷新数据库 原来的数据就已经恢复。
Ubuntu如何利用.ibd文件恢复MySQL数据?由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Ubuntu如何利用.ibd文件恢复MySQL数据?”