MySQL ".frm" (table) files have a file signature and a defined header format.
This format is briefly explained in 8 bits: MySQL File formats and headers:
- The first two bytes are always
FE,01
- The 4th byte is the storage type: e.g.
0C
for InnoDB,09
for MyISAM,14
for MyIASM w/ partitions. (See Bill Karwin's comment; these are extracted from thelegacy_db_type
enum.)
That should be all the information required to perform a cursory check - either with file
(which may or may not need additional rules) or by manual inspection with something like xxd
, e.g.
sh$ xxd -l 4 table.frm
Keep in mind that a single database may contain MyISAM and InnoDB tables.