当前位置: 首页 > article >正文

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、执行完后,刷新数据库 原来的数据就已经恢复。


http://www.kler.cn/a/551121.html

相关文章:

  • 单例模式的使用方式
  • 【Python】循环语句详解:for语句、while语句
  • JavaScript设计模式 -- 观察者模式
  • 如何将ubuntu下的一个目录,保存目录结构为一个git仓库并上传
  • React源码揭秘 | 启动入口
  • 房屋全生命周期自动化监测系统详解
  • 【Python】利用 Emoji 隐藏数据
  • Qt CMake 参考网址
  • 【Zookeeper如何实现分布式锁?】
  • 机器学习实战(4):逻辑回归——分类问题的基础
  • Docker 存储管理:卷、绑定挂载、临时存储
  • 50道题快速复习MySQL之准备篇
  • node的内置对象,vue的内置对象
  • 高通推出骁龙游戏超级分辨率™:充分释放移动游戏性能,带来更持久的续航
  • windows在wsl ubuntu环境中启用cuda加速AI推理和训练
  • 【DeepSeek 行业赋能】从金融到医疗:探索 DeepSeek 在垂直领域的无限潜力
  • UART(一)——UART基础
  • 云贝餐饮连锁V3独立版全开源+vue源码
  • 领克汽车工厂探秘品牌体验方案拆解
  • 蓝桥杯备赛1-2合法日期