文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

通过.frm和.idb文件恢复mysql数据库

2021-12-18 05:37

关注

通过.frm和.idb文件恢复mysql数据库

本文对该文章进行参考,地址https://baijiahao.baidu.com/s?id=1675966756498698574&wfr=spider&for=pc

现在有一个数据库需要恢复,已经获取到.frm和.ibd文件

这些文件即是我之前的文章2021长安杯wp - WXjzc - 云海天 (cnblogs.com)中的第36题的数据库的文件

先将要恢复的数据库的表名全部提取出来dir /l *.frm /b > filename.txt,去掉后缀即为表名

下载MySQL Utilities用于将frm文件转换成sql文件lhttps://downloads.mysql.com/archives/utilities/

通过phpstudy启用mysql服务,引擎一定要选择InnoDB,这个引擎才会生成.frm和.ibd文件

然后编写一个bat文件,批量完成操作,格式为

mysqlfrm --server=用户名:密码@服务器:端口 源文件路径abc.frm > 目标文件路径abc.sql --diagnostic --port=3307 --user=

mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001@6211@7684@8d26@5355.frm > E:cabwww_honglian7001sql@6211@7684@8d26@5355.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin.frm > E:cabwww_honglian7001sqlapp_admin.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin_cate.frm > E:cabwww_honglian7001sqlapp_admin_cate.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin_log.frm > E:cabwww_honglian7001sqlapp_admin_log.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_admin_menu.frm > E:cabwww_honglian7001sqlapp_admin_menu.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_appconfig.frm > E:cabwww_honglian7001sqlapp_appconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_article.frm > E:cabwww_honglian7001sqlapp_article.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_article_cate.frm > E:cabwww_honglian7001sqlapp_article_cate.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_attachment.frm > E:cabwww_honglian7001sqlapp_attachment.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_content.frm > E:cabwww_honglian7001sqlapp_content.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_emailconfig.frm > E:cabwww_honglian7001sqlapp_emailconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_messages.frm > E:cabwww_honglian7001sqlapp_messages.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_mobile.frm > E:cabwww_honglian7001sqlapp_mobile.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_smsconfig.frm > E:cabwww_honglian7001sqlapp_smsconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_urlconfig.frm > E:cabwww_honglian7001sqlapp_urlconfig.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_user.frm > E:cabwww_honglian7001sqlapp_user.sql --diagnostic --port=3307 --user=
mysqlfrm --server=root:root@localhost:3306 E:cabwww_honglian7001app_webconfig.frm > E:cabwww_honglian7001sqlapp_webconfig.sql --diagnostic --port=3307 --user=

打开文件就能发现,这些sql语句完成了表结构的创建

可以将这些sql文件中的语句全部合到同一个文件当中copy *.sql create.sql

把注释会引起报错的warning删掉

在创建一个同名的数据库create DATABASE www_honglian7001

将之前处理的sql语句导入并执行

使用命令alter table `表名` discard tablespace;来删除创建表时生成的.ibd文件,并生成.frm文件,不执行这个命令的话,则只有.ibd文件

mysql的数据目录可以在phpstudy中查看

将要恢复的.ibd文件放入目录下对应的数据库目录中

再使用命令alter table `表名` import tablespace;实现数据迁移

刷新数据库后即可查看到数据已经恢复

有一点出现了问题,之前的表名@6211@7684@8d26@5355,这其实是最初的数据库中的一个中文表名,为我的账单,但是现在变成了编码形式,以这个形式进行上述操作的时候,生成的.frm文件会变成@04006211@04007684@04008d26@04005325,从而导致恢复失败,要解决这个问题,只需要将这类文件在一开始就重命名为正常格式即可

重命名之后进行操作,数据成功恢复

原文地址:https://www.cnblogs.com/WXjzc/archive/2022/04/09/16122196.html

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯