记一次ibd文件数据库恢复过程
本文最后更新于 2025-03-24,文章内容可能已经过时。
起因
之前服务器安装某个程序需要.net8 要修改glibc更改版本,修改后正常使用,不小心更新宝塔后保存 需要glibc_2.33 2.34,安装2.34的时候直接报错,导致内存异常,ssh连不上,重启后无法进入系统,进入救援模式后,拷贝出数据库data目录文件,进行数据恢复
frm,MYD,MYI文件
这些文件新建一个数据库,把这个三个文件拷贝进去 刷新数据库即可出现表数据,非常简单。
frm,IBD文件
需要一个Linux服务器,下载dbsake后,用dbsake解析出表结构,新建一个表,后删除表空间引用,拷贝ibd文件再使用import导入即可。下面是具体步骤。
- 下载dbsake
curl -s http://get.dbsake.net > dbsake
- 给dbsake权限
chmod u+x dbsake
- 拷贝frm文件到服务器,使用dbsake
将后面的路径以及文件换成你的路径和文件
./dbsake frmdump /www/disk1/dbsake/xxx.frm
运行结果:
[root@ser3VswS91UBrbe dbsake]# ./dbsake frmdump /www/disk1/dbsake/typecho_weixin.frm
--
-- Table structure for table `typecho_weixin`
-- Created with MySQL Version 5.7.40
--
CREATE TABLE `typecho_weixin` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`openid` varchar(64) DEFAULT NULL,
`name` varchar(32) DEFAULT NULL,
`mail` varchar(150) DEFAULT NULL,
`ban` int(10) unsigned DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 创建上面的表
- 删除空间引用
alter table typecho_weixin DISCARD TABLESPACE
- 将ibd文件拷贝到你用来恢复机子数据库的目录,若不知道使用以下命令查询
show variables like '%datadir%';
- 复制ibd文件后,导入ibd数据
alter table typecho_weixin IMPORT TABLESPACE
导入后就可以正常查看了,之后就是导出sql文件去新服务器上执行就行
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 jampang.cn
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果