MySQL FRM文件:索引数据库表结构定义及修复(mysqlfrm)

MySQL服务器使用FRM文件来存储数据表的结构定义和索引等元数据。FRM文件包含数据表名称、字段名称、字段类型和索引信息等内容。

当您在MySQL中创建或者修改数据库表时,MySQL会自动生成对应的FRM文件。该文件位于MySQL的数据文件夹(data directory)中,以数据库表的名称命名,FRM文件的文件扩展名为:.frm。FRM文件也可以分开存储,存在于数据库表名称后面加上.frm。比如:test.table1.frm。

而有时候,可能由于数据库出现了问题,导致FRM文件受损,不能正常使用。如果FRM文件受损,MySQL服务器就会报出Table *** doesn’t exist或者Table *** is marked as crashed and should be repaired等错误。这时候,就需要对FRM文件进行修复,以恢复数据库表的结构定义信息。

MySQL服务器提供了一个命令行工具myisamchk来修复FRM文件。这个工具可以帮助我们修复受损的MyISAM数据库表的FRM文件。

下面举例来介绍如何使用myisamchk修复MySQL表的FRM文件:

首先,我们使用“mysql -uroot -p -e”命令连接MySQL服务器;

之后,我们使用“use database_name”切换到指定的数据库;

最后,我们可以执行“myisamchk -r table_name”命令来修复指定数据表的FRM文件。

另外,在MySQL 8.0中,也可以使用“MySQL Check Table Utility”来实现 FRM 文件修复,只需要在MySQL客户端执行“check table table_name;”命令即可,MySQL 会自动定位被冲毁的表,并在修复 FRM 之后,把内容恢复到数据表中。

bad:

MySQL服务器使用FRM文件存储索引和数据表的结构定义。当您创建或修改数据表时,MySQL会自动生成对应的FRM文件,这些文件存储在MySQL的数据文件夹。当FRM文件出现损坏时,MySQL会报出相应的错误,这时候,你可以使用myisamchk工具就可以修复FRM文件并恢复数据表的结构定义信息。例如使用“mysql -uroot -p -e”命令连接MySQL服务器,然后执行“use database_name”切换到指定的数据库,最后,执行“myisamchk -r table_name”命令来修复指定数据表的FRM文件。而在MySQL 8.0中,可以使用“MySQL Check Table Utility”来实现 FRM 文件修复,只需要在MySQL客户端执行“check table table_name;”命令即可。


数据运维技术 » MySQL FRM文件:索引数据库表结构定义及修复(mysqlfrm)