Mysql数据从镜像文件(ibd)恢复

Mysql数据从镜像文件(ibd)恢复

  • 一、简介
  • 二、开始操作
    • 2.1、首先找到MySQL数据库的data目录
    • 2.2、在MySQL上新增一个test数据库
    • 2.3、删除sp_same_deployment表的表空间
    • 2.4、将镜像备份中的sp_same_deployment.ibd上传到data下的数据库文件夹中
    • 2.5、修改新上传的文件的ibd文件的权限
    • 2.6、重新导入表空间

一、简介

项目已经开发到一半,然后提出修改模块内容,模块相应数据删除了。然后需要恢复数据。从镜像备份。

二、开始操作

2.1、首先找到MySQL数据库的data目录

我这边是在docker中安装了MySQL5.7的镜像,然后配置了外部挂载data数据。
Mysql数据从镜像文件(ibd)恢复_第1张图片

2.2、在MySQL上新增一个test数据库

Mysql数据从镜像文件(ibd)恢复_第2张图片
在数据库中增加了图中所需要恢复的表。需要保证这里创建的表和数据恢复的表的表结构相同。

2.3、删除sp_same_deployment表的表空间

ALTER TABLE sp_same_deployment DISCARD TABLESPACE;

删除后可以看到data文件夹下的原来的sp_same_deployment.ibd文件没有了。
在这里插入图片描述

2.4、将镜像备份中的sp_same_deployment.ibd上传到data下的数据库文件夹中

Mysql数据从镜像文件(ibd)恢复_第3张图片
上传后,文件的权限为root。需要修改权限
Mysql数据从镜像文件(ibd)恢复_第4张图片

2.5、修改新上传的文件的ibd文件的权限

修改ibd文件的权限和已存在的文件的权限相同。

chown polkitd:ssh_keys sp_same_deployment.ibd

Mysql数据从镜像文件(ibd)恢复_第5张图片

2.6、重新导入表空间

ALTER TABLE sp_same_deployment IMPORT TABLESPACE;

你可能感兴趣的:(问题,Mysql架构学习笔记)