起因
之前服务器安装某个程序需要.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文件去新服务器上执行就行
本文共 300 个字数,平均阅读时长 ≈ 1分钟
评论 (0)