主页 > 手机  > 

Ubuntu如何利用.ibd文件恢复MySQL数据?

Ubuntu如何利用.ibd文件恢复MySQL数据?

## 背景:服务器中,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 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数据?