.FRM

FRM File

MySQL Table Definition File
Ask a question
QUICK ANSWER

An FRM file is a MySQL table definition file. It stores the column names, data types, and indexes for one database table, but not the actual row data. To read it, run mysqlfrm --diagnostic on the file, or restore the data directory into a matching MySQL or MariaDB server. MySQL 8.0 no longer creates .frm files at all.

Developer: MySQL AB / Oracle Corporation Category: Database Files MIME: application/octet-stream
OPENS ON Windows macOS Linux
Related: .DB · .DBF · .ACCDB · .SQL

On this page

19k+ extensions indexed
Last reviewed Aug 15, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the FRM file format?

An .frm file is a MySQL table definition file that stores information about the structure and layout of a single database table. One .frm file is created for each table, and the table name is used for the .frm filename - so a table named orders produces orders.frm inside the MySQL data directory.

The .frm format records only the table schema: column names, data types, lengths, default values, and index/key metadata. It never holds row data. For MyISAM tables, the actual data lives in a companion .MYD file (with indexes in a .MYI file); MySQL required all three files together to fully access a MyISAM table. InnoDB tables paired their .frm with a separate .IBD tablespace file instead.

The file is a proprietary little-endian binary blob starting with the magic bytes 0xFE 0x01. It was introduced with MySQL 1.0 in 1995 and used by every storage engine - MyISAM and InnoDB alike - through MySQL 5.7 and MariaDB. MySQL 8.0 (December 2018) removed .frm files entirely, shifting table metadata into InnoDB's transactional data dictionary. MariaDB continued using .frm files after that split.

When row data is lost or corrupted, a surviving .frm file can be inspected with the mysqlfrm diagnostic utility to reconstruct the CREATE TABLE statement and recover the column layout.

Security & safety

RISK: LOW

A .frm file is passive binary table metadata - it contains no executable code and is safe to handle. The practical risks are data-recovery ones, not malware: a .frm restored into the wrong MySQL version can fail or corrupt the dictionary, and a lone .frm without its .MYD/.ibd cannot return your rows. Always work on copies, match the original server version, and keep the companion data files together.

Format details

in a nutshell
FULL NAMEMySQL Table Definition Fileaka MySQL table format file, MySQL .frm file
DEVELOPERMySQL AB / Oracle Corporationsince 1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7)
MIME TYPEapplication/octet-stream
TYPEBinary table-definition file (data dictionary entry for one table)
This extension is also used by…
  • Visual Basic Form file - Source file describing a form's layout and controls in VB6 and earlier (plain text).
  • FormFlow Form - Electronic form document created by the legacy JetForm/FormFlow software.
  • Adobe FrameMaker (legacy) - Older FrameMaker installations used .frm for some form/template resources.
MAGIC BYTES · FILE SIGNATURE
OFFSET
0001
HEX
FE01
ASCII
··
The FRM header starts with a magic/version word (commonly 0xFE 0x01 for the classic format). There is no stable cross-version ASCII signature; the file is a proprietary binary blob, so identification is by extension + context (sits next to .MYD/.MYI or .ibd in a MySQL data directory).

Programs that open FRM files

Windows3 apps
MySQL Server Open-source Place the table files in the server's data directory (matching version), start MySQL, then run SHOW CREATE TABLE / mysqldump. The proper way to use a .frm.
mysqlfrm (MySQL Utilities) Open-source Run 'mysqlfrm --diagnostic table.frm' to read the CREATE TABLE statement directly from the file, without a running server.
MariaDB Server Open-source MariaDB still understands .frm - install it, drop the files into its data dir, and dump the schema/data.
macOS1 app
MySQL Server Open-source Same approach: restore the data files into a matching MySQL/MariaDB instance and dump the table.
Linux2 apps
MySQL / MariaDB Server Open-source Copy the files into /var/lib/mysql (matching version), start the service, then SHOW CREATE TABLE or mysqldump.
mysqlfrm (MySQL Utilities) Open-source mysqlfrm --diagnostic table.frm prints the column layout when no server is available (Utilities are archived but still functional).

Technical details

deep spec
File structureProprietary little-endian binary blob; no compression or encryption
Magic bytes0xFE 0x01 at offset 0 (version-dependent binary header; no stable ASCII signature)
ContentColumn definitions (names, types, lengths, defaults), index/key metadata, and table options - schema only, never row data
Typical file size1 KB - 50 KB per table; grows with column and index count
MIME typeapplication/octet-stream
One file per tableEach table gets its own .frm file named after the table, stored in the schema's subdirectory of the MySQL data directory
MyISAM companions.MYD (row data) and .MYI (index data) - all three required for full MyISAM table access
InnoDB companion.ibd tablespace file - the .frm held the schema while .ibd held data and indexes
Engine coverageWritten by all storage engines in MySQL 3.x - 5.7: MyISAM, InnoDB, MEMORY, CSV, ARCHIVE, and others
Removed inMySQL 8.0 (December 2018): metadata moved into the InnoDB transactional data dictionary; no .frm files created or read
Still used byMariaDB continued generating .frm files after the MySQL 8.0 split
Recovery utilitymysqlfrm (MySQL Utilities) reads a standalone .frm to reconstruct the CREATE TABLE DDL statement
DeveloperMySQL AB (original); Oracle Corporation (since 2010 acquisition)
Operating systemsCross-platform: Linux, Windows, macOS, FreeBSD - anywhere MySQL or MariaDB ran
Released1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7)
Latest versionLast used in MySQL 5.7 / MariaDB; removed from MySQL 8.0 (December 2018)
Specificationdev.mysql.com

FRM conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with FRM files. Be specific - include your system and software version.
No account needed · answers usually within a day

No questions yet - be the first to ask about FRM files.

Frequently asked questions

How do I open a .frm file?
You don't open it by hand. Read its schema with 'mysqlfrm --diagnostic table.frm', or place the table files into a matching MySQL/MariaDB server's data directory and run SHOW CREATE TABLE. Opening the raw binary in a text editor shows gibberish.
Can I recover my data from just a .frm file?
No - the .frm holds only the table structure (columns, types, indexes). The actual rows live in the .MYD (MyISAM) or .ibd (InnoDB) file. Without those, you can recover the schema but not the data.
How do I get the CREATE TABLE statement from a .frm?
Run 'mysqlfrm --diagnostic yourtable.frm' from MySQL Utilities, or restore the file into a MySQL/MariaDB server and run SHOW CREATE TABLE.
Why doesn't MySQL 8.0 have .frm files?
MySQL 8.0 (2018) replaced per-table .frm files with a transactional data dictionary stored inside InnoDB, fixing the old problem of .frm files drifting out of sync with the server's metadata.
I copied the .frm but get 'Table doesn't exist' - why?
InnoDB needs the matching tablespace (.ibd) and the data dictionary entry. Copying the .frm alone isn't enough; restore the whole data directory, or use a tool like mysqlfrm to read just the structure.
What programs open .frm besides MySQL?
MariaDB Server understands .frm too, and mysqlfrm reads it without a server. There's no general 'viewer' - it's a server-internal format.

References

1MySQL Internals Manual - .frm file formatdev.mysql.com
2MySQL 8.0 Reference - Data Dictionary (replaces .frm)dev.mysql.com

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.MDMarkdown Document
3.CRDOWNLOADChrome Partial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.PARTPartial Download File
6.RPMSGRestricted Permission Message
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.ICSiCalendar data file

Related extensions

.DBSQLite Database File
.DBFDatabase File (dBASE / xBase table)
.ACCDBMicrosoft Access Database (2007+)
.SQLSQL Script (Structured Query Language source / database dump)
.MDBMicrosoft Access Database (97-2003, Jet engine)
.FDBFirebird Database

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z