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

Mysql .idb文件 恢复

先说场景,最近遇到难事,Mysql服务崩溃,经过努力,悬着的心彻底死了,服务起不来

紧接着就是赶紧把数据恢复到另一台服务器上,然而更崩溃的是,数据库备份用不了,此处不用管,为什么用不了,反正就是没办法用备份文件去恢复

于是直接复制 .idb文件去其他的数据库服务器下面。

基础扫盲

  • .ibd文件是InnoDB存储引擎中用于存储表中数据的主要文件。每个InnoDB表都有一个对应的.ibd文件,其中包含表中的数据记录。

  • .frm文件:它存储了表的结构定义,包括列信息、索引定义、约束等。如果.ibd文件对应的表结构在目标数据库中不存在或已损坏,那么复制.frm文件是必要的,以确保表结构的正确恢复。

  • .TRG文件:这是 MySQL中存储触发器定义的文件。如果原数据库中的表有触发器,并且希望在恢复后触发器也能正常工作,那么需要将对应的.TRG文件一起复制到目标数据库的相应位置。

恢复步骤

1.丢弃原有的表空间关联

如果要替换某个表文件,首先需要丢弃原有的表空间关联

最后在文件恢复后,重新建立空间关联。

USE your_database;
ALTER TABLE your_table DISCARD TABLESPACE;
2.停止 MySQL 服务

在进行恢复操作之前,首先要确保 MySQL 服务已停止,以防止数据被意外修改。

systemctl stop mysqld
3.备份原有的数据文件(可选但强烈建议)

为了防止恢复过程中出现问题导致数据丢失,最好先对现有的 MySQL 数据目录进行备份。假设 MySQL 数据目录为/var/lib/mysql,可以使用以下命令进行备份:

cp -r /var/lib/mysql /var/lib/mysql_backup_$(date +%Y%m%d%H%M%S)
4.替换.idb文件

将需要恢复的.idb文件复制到对应的数据库表所在的目录中。通常,MySQL 的数据文件存储在/var/lib/mysql目录下

具体的数据库表文件位于对应数据库名的子目录中。

例如,如果要恢复test数据库中table1表的.idb文件,需要将恢复的.idb文件复制到/var/lib/mysql/test/目录下,并确保文件名与表名对应的.idb文件名一致。

5.检查文件路径和权限

检查.ibd文件的权限是否正确,确保 MySQL 进程有足够的权限读取和写入该文件。

通常,MySQL 数据文件的所有者和所属组应该是运行 MySQL 服务的用户和组,一般为mysql:mysql,文件权限为600或640。

chown -R mysql:mysql /var/lib/mysql/test/*.ibd
chmod 600 /var/lib/mysql/test/*.ibd
6.启动mysqld服务
systemctl start mysqld
7.检查表空间关联

如果.ibd文件是从其他环境复制过来的,可能存在表空间关联问题。

可以尝试使用ALTER TABLE... DISCARD TABLESPACE 和 ALTER TABLE... IMPORT TABLESPACE语句来重新关联表空间。

重新导入表空间

ALTER TABLE user_table IMPORT TABLESPACE;

至此,整个流程结束,数据应该恢复


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

相关文章:

  • Windows10 Xming6 + Xshell7 实现远程 ubuntu-24.04.1-desktop gui 界面本地展示
  • Redis 同步机制详解
  • Docker 部署 Spring Cloud 项目:实战指南与经验分享
  • Djiang 5实用指南(八)后台管理系统
  • JSON-to-Excel v2.0.0发布,可以在Excel内部,把JSON转换成Excel格式,嵌套的JSON也能转
  • 5个GitHub热点开源项目!!
  • 【初阶数据结构】链表的柔光之美
  • 主流 AI 芯片配置
  • STM32之时钟树
  • Doris、ClickHouse 和 Flink 这三个技术典型的应用场景
  • 关于Hadoop集群部署打不开webUI界面问题
  • 软件安全性测试类型分享,第三方软件测试机构如何进行安全性测试?
  • 小智聊天机器人应用层头文件application.h解析
  • Django+Vue+数据可视化的网络考试与测评系统(程序+论文+讲解+安装+调试+售后)
  • DeepSeek系列 清华大学-AIGC发展研究3.0版 pdf完整版(附下载)
  • c# 代码规范
  • 【机器学习】K近邻#1基于Scikit-Learn的K近邻分类
  • AWS SDK for Java 1.x 403问题解决方法和原因
  • ngx_conf_file_t
  • 在PyCharm中集成AI编程助手并嵌入本地部署的DeepSeek-R1模型:打造智能开发新体验