mysql 从 frm 文件恢复 table 表结构的3种方法_MySql_数据库_码蚁之家_www.codes51.com
返回首页
专题
网络编程
ASP教程 .NET教程 PHP教程 JSP教程 C#教程 Java教程 Delphi教程 VB教程 C/C++教程 Android开发 IOS开发 Windows Phone开发 Python教程 Ruby教程 移动开发 其他编程教程
网页制作
HTML教程 CSS教程 Dreamweaver教程 FrontPages教程 Javascript教程 web前端
数据库
SqlServer MySql Oracle Access DB2 SQLite 其他数据库
图形设计
photoshop教程 Fireworks教程 CorelDraw教程 Illustrator教程 AutoCad教程 FLASH教程
操作系统
Windows xp教程 Windows 7教程 Windows 8教程 Windows 2003教程 Windows Server 2008教程 Linux教程 Windows 10
网站运营
建站经验 SEO优化 站长心得 网赚技巧 网站推广 站长故事
手机学院
手机速递 安卓教程 iphone教程 手机评测 手机技巧 手机知识 手机应用 手机游戏 手机导购
网店宝典
开店指导 开店经验 网店装修 网店推广 网店seo 网购技巧
软件教程
办公软件 系统工具 媒体工具 压缩工具 图文处理 文件管理
范文之家
自我介绍 自我鉴定 写作模板 合同范本 工作总结 贺词祝福语 演讲致辞 思想汇报 入党申请书 实习报告 心得体会 工作计划 简历模板 工作报告 导游词 评语寄语 口号大全 策划书范文
信息工程
软件工程 企业开发 系统运维 软件测试
移民之家
移民动态 移民政策 移民百科 移民生活 技术移民 投资移民
知识大全
母婴 数码 摄影 装修 美文 常识 时尚 婚嫁 美食 养生 旅游 兴趣 职场 教育 文学 健康
问答大全
电脑网络 手机数码 QQ专区 生活 游戏 体育运动 娱乐明星 休闲爱好 文化艺术 社会民生 教育科学 健康医疗 商业理财 情感家庭 地区问题 其他
编程问答
IOS Android .NET Java C/C++ Delphi VC/MFC 其他语言 PHP MSSQL MYSQL Oracle 其他数据库 Web开发 Windows Linux 硬件/嵌入开发 网络通信 移动开发 云计算 企业IT 游戏开发
笑话大全
幽默笑话 爱情笑话 成人笑话 校园笑话 爆笑笑话 综合笑话 古代笑话 现代笑话 国外笑话

mysql 从 frm 文件恢复 table 表结构的3种方法(1/2)

来源:互联网  时间:2018/10/4 1:38:04

mysql 正常运行的时候,查看 table 的结构并不是困难的事。

 但是有时 mysql 发生故障,这种方法便不再可行。

当遇到故障,通常使用新的 mysql 实例来恢复当前的数据。

建表是非常重要的步骤,我们必须有其它的方法来寻找 table 的结构。

table 结构定义在哪里

通常关注的用户数据,底层都实际存储在 mysql 数据目录。
 其它的元数据也不例外,比如 table 表结构的定义。

mysql 数据目录文件结构是非常清晰的,

•目录对应数据库
•frm 文件存储了 table 结构的定义
•ibdata 文件存储了 mysql 的元数据及其它

table 定义的结构,就存在于 frm 文件中,当然管理元数据的 ibdata 也会有记录。

当存在 frm 文件的时候,恢复表结构相对容易;
 但是如果执行了 drop table,便删除了 frm 文件,本文所提供的方法就爱莫能助了。
 这种情况下,可以尝试从 ibdata 恢复表结构,这暂时不在下面的讨论范围内。

解析 table 结构

下面介绍 3 种方式,从 frm 文件中,解析得到 create table 命令。

mysqlfrm

mysqlfrm 是 mysql utilities 工具集 中的其中之一,
 用于分析 frm 文件生成 create table 命令。
 目前已经不再更新,部分功能并入了新版本的 mysql shell(version 8 及以后)。

mysql utilities 需要 python2 环境,安装非常简单。

$ tar -xvzf mysql-utilities-1.6.5.tar.gz
$ cd mysql-utilities-1.6.5
$ python setup.py build
$ python setup.py install

mysqlfrm 支持两类模式来解读 frm:

直接分析

这种模式比较直接,逐个字节分析 frm 文件,尽可能的提取信息。

这种模式下,需要使用 --diagnostic 参数。

$ mysqlfrm --diagnostic /data/sakila/actor.frm

借助 mysql 实例分析

这种模式,借助新的 mysql 实例,从中完成 frm 的分析工作。
 可以用两种方式来指定,如何开启新的 mysql 实例。

一,从当前的 mysql 服务中 spawn,使用 --server 指定 mysql 服务

$ mysqlfrm --server=root:pass@localhost:3306 --port=3310 /data/sakila/actor.frm

二,启动新的 mysql 实例,使用 --basedir 指定 mysql 程序路径

$ mysqlfrm --basedir=/usr/local/bin/mysql --port=3310 /data/sakila/actor.frm

--port 给新的实例指定端口,是为了避免与当前的 3306 端口出现冲突。

dbsake

这是偶然发现的一个工具,文档中它这样介绍自己:

dbsake - a (s)wiss-(a)rmy-(k)nif(e) for MySQL

作者一定是一个对 mysql 很有心得的人,工具从下载,安装到使用,简单,利落。

$ curl -s get.dbsake.net > dbsake
$ chmod u+x dbsake
$ ./dbsake frmdump [frm-file-path]

online service


上一篇详解mysql80创建用户授予权限报错解决方法
下一篇MySQL数据库监控软件lepus使用问题以及解决办法
明星图片
相关文章
《 mysql 从 frm 文件恢复 table 表结构的3种方法》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)