Mysql数据从镜像文件(ibd)恢复
一、简介
项目已经开发到一半,然后提出修改模块内容,模块相应数据删除了。然后需要恢复数据。从镜像备份。
二、开始操作
2.1、首先找到MySQL数据库的data目录
我这边是在docker中安装了MySQL5.7的镜像,然后配置了外部挂载data数据。
2.2、在MySQL上新增一个test数据库
在数据库中增加了图中所需要恢复的表。需要保证这里创建的表和数据恢复的表的表结构相同。
2.3、删除sp_same_deployment表的表空间
ALTER TABLE sp_same_deployment DISCARD TABLESPACE;
删除后可以看到data文件夹下的原来的sp_same_deployment.ibd文件没有了。
2.4、将镜像备份中的sp_same_deployment.ibd上传到data下的数据库文件夹中
上传后,文件的权限为root。需要修改权限
2.5、修改新上传的文件的ibd文件的权限
修改ibd文件的权限和已存在的文件的权限相同。
chown polkitd:ssh_keys sp_same_deployment.ibd
2.6、重新导入表空间
ALTER TABLE sp_same_deployment IMPORT TABLESPACE;