如何通过ibd文件恢复MySql数据

今天干了一件大事,安装1Panel导致原来服务器上的所有容器都干没了,主要是MySQL。今天就介绍一下恢复数据的过程,只有.ibd文件怎么恢复MySql

MySql版本8.8.4

第一种情况:知道表结构

知道表结构的话恢复数据比较简单

1、创建数据库

2、建表,要求就是跟原来的表结构一样

3、将你的.ibd文件直接拷贝到当前数据库的data目录下

4、重启MySql

重启成功就结束了

第二种情况:不知道表结构

这种情况下就需要借助额外的工具来恢复数据

1、安装 python3 执行下面这个命令安装

bash 复制代码
 yum install -y python3

2、安装ibd2sql这个工具

bash 复制代码
#下载压缩包
wget https://github.com/ddcw/ibd2sql/archive/refs/heads/main.zip
#解压
unzip main.zip

3、进入 ibd2sql-main 目录下

4、执行命令

python3 main.py ***********你的ibd文件的具体路径************* --ddl --sql

bash 复制代码
python3 main.py /opt/1panel/apps/mysql/mysql/data/ry@002dvue/sj_job.ibd --ddl --sql

执行完毕后就会出现对应的sql脚本,最后直接在执行一下这个sql脚本就能把表结构和数据都找回来了,这种方式是通过执行sql脚本重新创建表和插入数据

当然也可以先执行--ddl 找回表结构

bash 复制代码
python3 main.py /opt/1panel/apps/mysql/mysql/data/ry@002dvue/sj_job.ibd --ddl

然后在新的数据库中执行create语句把表建好,最后再把你的.ibd文件目录拷贝到新的数据库的data目录下,最后重启MySQL,重启成功的话 数据就都找回来了,要是重启失败的话就只能执行--ddl和--sql找回数据了

总结

总之兄弟们,操作数据库的时候最好还是备份一下,一不小心整个库都没了,太吓人了,还有就是如果有兄弟安装1Panel,先确保服务器上没有其他的docker容器,不然的话安装1Panel时会将服务器上原来的docker容器和镜像全部都给清了,所以在安装1Panel的时候先做好备份,或者说一开始服务器上没有docker的时候安装1Panel

相关推荐
全栈工程师修炼指南4 小时前
DBA | SQL 结构化查询语言介绍与学习环境准备
数据库·sql·学习·dba
RationalDysaniaer5 小时前
MySQL时间类型
数据库·mysql
代码的余温6 小时前
MySQL三大存储引擎对比:InnoDB vs MyISAM vs MEMORY
数据库·mysql
扶风呀6 小时前
MySQL宝典
数据库·mysql
fatfishccc7 小时前
循序渐进学 Spring (上):从 IoC/DI 核心原理到 XML 配置实战
xml·java·数据库·spring·intellij-idea·ioc·di
你的电影很有趣7 小时前
lesson37:MySQL核心技术详解:约束、外键、权限管理与三大范式实践指南
数据库·mysql
爬山算法7 小时前
MySQL(191) 如何优化MySQL的磁盘I/O?
android·数据库·mysql
野犬寒鸦8 小时前
Java Stream API 中常用方法复习及项目实战示例
java·服务器·开发语言·数据库
专注VB编程开发20年8 小时前
c#,vb.net全局多线程锁,可以在任意模块或类中使用,但尽量用多个锁提高效率
java·前端·数据库·c#·.net
你的电影很有趣9 小时前
lesson36:MySQL从入门到精通:全面掌握数据库操作与核心原理
数据库·mysql