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

mysql数据库ibdata文件被误删后恢复数据的方法

使用mysql数据库的时候不小心误删除了ibdata和ib_logfile文件,但是幸好.ibd文件还在。这种情况下其实数据还在并未丢失,丢失的是表结构。查询表数据时会报错:ERROR 1146 (42S02): Table ‘testdb.test’ doesn’t exist,其实是说表结构不存在。
这种情况下数据是可以恢复的,具体方法如下:
1、set foreign_key_checks=0;
取消外键关联检查,否则移除表空间的话会报错。

2、drop table test/ drop database testdb

3、 先备份要恢复的数据库(比如testdb)目录的.ibd文件,然后删除.frm 和.ibd文件

4、按照备份.ibd文件时的表结构新建表
备注:row_format要和ibd文件的row_format一致,否则,会提示两者不一致。

5、移除表空间
alter table test DISCARD TABLESPACE;

6、将备份的ibd文件放到testdb目录下并修改它的所有者和所属组为mysql:mysql
chown mysql:mysql ./test.ibd

7、 重新导入表空间
alter table test IMPORT TABLESPACE;

8、set foreign_key_checks=1;
重新设置外键关联检查。

http://www.lryc.cn/news/388926.html

相关文章:

  • eBPF技术揭秘:DeepFlow如何引领故障排查,提升运维效率
  • C++视觉开发 三.缺陷检测
  • 使用 Amazon Bedrock Converse API 简化大语言模型交互
  • 第二十一章 函数(Python)
  • 使用pyqt5编写一个七彩时钟
  • 【Linux】:命令行参数
  • 高考假期预习指南,送给迷茫的你
  • 独孤思维:负债了,还可以翻身吗
  • SwiftUI八与UIKIT交互
  • RedHat9 | 内部YUM本地源服务器搭建
  • 无偏归一化自适应心电ECG信号降噪方法(MATLAB)
  • AI基本概念(人工智能、机器学习、深度学习)
  • LabVIEW幅频特性测试系统
  • 校园卡手机卡怎么注销?
  • logback自定义规则脱敏
  • 高效批量复制与覆盖:一键实现文件管理,轻松应对同名文件,简化工作流程
  • vue3中使用Antv G6渲染树形结构并支持节点增删改
  • 【PB案例学习笔记】-26制作一个带浮动图标的工具栏
  • 反向沙箱技术:安全隔离上网
  • 前端在for循环中使用Element-plus el-select中的@click.native动态传参
  • Oracle SQL - CONNECT BY语句Where条件中不能使用OR?[已解决]
  • python-逻辑语句
  • 【stm32】大一上学期笔记复制
  • LeetCode题练习与总结:二叉树的前序遍历--144
  • 如何优化Spring Boot应用的性能
  • 人工智能--目标检测
  • Java基础之List实现类
  • java List接口介绍
  • 调度器APScheduler定时执行任务
  • git合并分支的疑问