mysql frm是什么文件

在mysql中,frm的意思为“表定义”,是描述数据表结构的文件。frm文件是用来保存每个数据表的元数据信息,包括表结构的定义等。frm文件跟数据库存储引擎无关,也就是任何存储引擎

    <blockquote><p>在mysql中,frm的意思为“表定义”,是描述数据表结构的文件。frm文件是用来保存每个数据表的元数据信息,包括表结构的定义等。frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有frm文件,命名方式为“数据表名.frm”。</p></blockquote>

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

在mysql中,frm的意思为“表定义”,是描述数据表结构的文件。

在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等。

.frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有.frm文件,命名方式为数据表名.frm,如user.frm. .frm文件可以用来在数据库崩溃时恢复表结构。

通常frm文件是不会损坏的,但是如果出现特殊情况出现frm文件损坏也不要放弃希望,例如下面报错:

MySQL通过sql/table.cc的create_frm()函数创建frm文件,创建出来的frm文件是二进制文件,需要通过hexdump解析成16进制来分析。

create_frm()函数对frm文件头部定义的代码

参考:https://www.percona.com/blog/2015/07/09/obtain-mysql-version-frm-file/

列属性结构:

1.png

红色部分:字段序号(4开始,4、5、6就是字段第一第二第三)

蓝色部分:字段长度

棕色部分:是否为空

绿色部分:字段类型

黄色部分:字符集

索引属性结构:

2.png

索引头部:

淡蓝色部分:索引统计数

粉色部分:索引总共有多少列

索引主体:

棕色部分:是否唯一索引

红色部分:表中列的序号

绿色部分:表中对应列的属性

字段默认值:

以上就是mysql frm是什么文件的详细内容,更多请关注每日运维其它相关文章!