Was ist das FRM-Dateiformat?
Eine .frm-Datei ist eine MySQL-Tabellendefinitionsdatei, die Informationen über die Struktur und das Layout einer einzelnen Datenbanktabelle speichert. Für jede Tabelle wird eine .frm-Datei erstellt, wobei der Tabellenname für den Dateinamen verwendet wird - eine Tabelle namens orders erzeugt also orders.frm innerhalb des MySQL-Datenverzeichnisses.
Das .frm-Format zeichnet nur das Tabellenschema auf: Spaltennamen, Datentypen, Längen, Standardwerte und Index-/Schlüssel-Metadaten. Es enthält niemals Zeilendaten. Bei MyISAM-Tabellen befinden sich die eigentlichen Daten in einer begleitenden .MYD-Datei (mit Indizes in einer .MYI-Datei); MySQL benötigte alle drei Dateien zusammen, um vollständig auf eine MyISAM-Tabelle zuzugreifen. InnoDB-Tabellen koppelten ihre .frm stattdessen mit einer separaten .IBD-Tablespace-Datei.
Die Datei ist ein proprietärer Little-Endian-Binär-Blob, der mit den Magic Bytes 0xFE 0x01 beginnt. Sie wurde 1995 mit MySQL 1.0 eingeführt und von jeder Storage-Engine - sowohl MyISAM als auch InnoDB - bis MySQL 5.7 und MariaDB verwendet. MySQL 8.0 (Dezember 2018) hat .frm-Dateien vollständig entfernt und die Tabellen-Metadaten in das transaktionale Datenwörterbuch von InnoDB verschoben. MariaDB verwendete .frm-Dateien nach dieser Trennung weiterhin.
Wenn Zeilendaten verloren gehen oder beschädigt sind, kann eine überlebende .frm-Datei mit dem Diagnose-Utility mysqlfrm untersucht werden, um die CREATE TABLE-Anweisung zu rekonstruieren und das Spaltenlayout wiederherzustellen.
Sicherheit
RISIKO: LOWEine .frm-Datei besteht aus passiven binären Tabellen-Metadaten - sie enthält keinen ausführbaren Code und ist sicher in der Handhabung. Die praktischen Risiken liegen in der Datenwiederherstellung, nicht in Malware: Eine in der falschen MySQL-Version wiederhergestellte .frm kann fehlschlagen oder das Wörterbuch beschädigen, und eine einzelne .frm ohne ihre .MYD/.ibd-Dateien kann Ihre Datenzeilen nicht zurückgeben. Arbeiten Sie immer mit Kopien, achten Sie auf die ursprüngliche Serverversion und halten Sie die zugehörigen Datendateien zusammen.
Formatdetails
kurz gefasst- Visual Basic Form-Datei - Quelldatei, die das Layout und die Steuerelemente eines Formulars in VB6 und früher beschreibt (Klartext).
- FormFlow-Formular - Elektronisches Formulardokument, das mit der veralteten JetForm/FormFlow-Software erstellt wurde.
- Adobe FrameMaker (Legacy) - Ältere FrameMaker-Installationen verwendeten .frm für einige Formular-/Vorlagenressourcen.
Programme zum Öffnen von FRM-Dateien
Technische Details
technische Spezifikation| Dateistruktur | Proprietärer Little-Endian-Binär-Blob; keine Komprimierung oder Verschlüsselung |
| Magic Bytes | 0xFE 0x01 bei Offset 0 (versionsabhängiger Binär-Header; keine stabile ASCII-Signatur) |
| Inhalt | Spaltendefinitionen (Namen, Typen, Längen, Standardwerte), Index-/Schlüssel-Metadaten und Tabellenoptionen - nur Schema, niemals Zeilendaten |
| Typische Dateigröße | 1 KB - 50 KB pro Tabelle; wächst mit der Anzahl der Spalten und Indizes |
| MIME-Typ | application/octet-stream |
| Eine Datei pro Tabelle | Jede Tabelle erhält eine eigene .frm-Datei, die nach der Tabelle benannt ist und im Unterverzeichnis des Schemas im MySQL-Datenverzeichnis gespeichert wird |
| MyISAM-Begleiter | .MYD (Zeilendaten) und .MYI (Indexdaten) - alle drei für den vollen MyISAM-Tabellenzugriff erforderlich |
| InnoDB-Begleiter | .ibd-Tablespace-Datei - die .frm hielt das Schema, während .ibd Daten und Indizes hielt |
| Engine-Abdeckung | Geschrieben von allen Storage-Engines in MySQL 3.x - 5.7: MyISAM, InnoDB, MEMORY, CSV, ARCHIVE und andere |
| Entfernt in | MySQL 8.0 (Dezember 2018): Metadaten wurden in das transaktionale InnoDB-Datenwörterbuch verschoben; keine .frm-Dateien mehr erstellt oder gelesen |
| Weiterhin verwendet von | MariaDB generierte auch nach der Trennung von MySQL 8.0 weiterhin .frm-Dateien |
| Wiederherstellungs-Utility | mysqlfrm (MySQL Utilities) liest eine eigenständige .frm, um die CREATE TABLE DDL-Anweisung zu rekonstruieren |
| Entwickler | MySQL AB (ursprünglich); Oracle Corporation (seit Übernahme 2010) |
| Betriebssysteme | Plattformübergreifend: Linux, Windows, macOS, FreeBSD - überall dort, wo MySQL oder MariaDB liefen |
| Veröffentlicht | 1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7) |
| Neueste Version | Last used in MySQL 5.7 / MariaDB; removed from MySQL 8.0 (December 2018) |
| Spezifikation | dev.mysql.com |
FRM-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu FRM-Dateien.