Hvad er FRM-filformatet?
En .frm-fil er en MySQL-tabeldefinitionsfil, der gemmer information om strukturen og layoutet af en enkelt databasetabel. Der oprettes én .frm-fil for hver tabel, og tabelnavnet bruges som .frm-filnavn - så en tabel ved navn orders producerer orders.frm inde i MySQL-datamappen.
.frm-formatet registrerer kun tabelskemaet: kolonnenavne, datatyper, længder, standardværdier og indeks/nøgle-metadata. Det indeholder aldrig rækkedata. For MyISAM-tabeller findes de faktiske data i en ledsagende .MYD-fil (med indekser i en .MYI-fil); MySQL krævede alle tre filer sammen for at få fuld adgang til en MyISAM-tabel. InnoDB-tabeller parrede deres .frm med en separat .IBD-tablespace-fil i stedet.
Filen er en proprietær little-endian binær blob, der starter med de magiske bytes 0xFE 0x01. Den blev introduceret med MySQL 1.0 i 1995 og brugt af alle lagringsmotorer - både MyISAM og InnoDB - frem til MySQL 5.7 og MariaDB. MySQL 8.0 (december 2018) fjernede .frm-filer helt og flyttede tabel-metadata ind i InnoDBs transaktionelle datakatalog. MariaDB fortsatte med at bruge .frm-filer efter denne opsplitning.
Når rækkedata går tabt eller bliver beskadiget, kan en overlevende .frm-fil inspiceres med diagnosticeringsværktøjet mysqlfrm for at rekonstruere CREATE TABLE-erklæringen og gendanne kolonnelayoutet.
Sikkerhed og tryghed
RISIKO: LOWEn .frm-fil er passive binære tabel-metadata - den indeholder ingen eksekverbar kode og er sikker at håndtere. De praktiske risici er relateret til datagendannelse, ikke malware: en .frm gendannet i den forkerte MySQL-version kan fejle eller beskadige kataloget, og en ensom .frm uden dens .MYD/.ibd kan ikke returnere dine rækker. Arbejd altid på kopier, match den originale serverversion, og hold de ledsagende datafiler samlet.
Formatdetaljer
kort fortalt- Visual Basic Form-fil - Kildefil, der beskriver en forms layout og kontrolelementer i VB6 og tidligere (almindelig tekst).
- FormFlow Form - Elektronisk formulardokument oprettet af den ældre JetForm/FormFlow-software.
- Adobe FrameMaker (legacy) - Ældre FrameMaker-installationer brugte .frm til visse formular-/skabelonressourcer.
Programmer der åbner FRM-filer
SHOW CREATE TABLE / mysqldump. Den korrekte måde at bruge en .frm på. CREATE TABLE-erklæringen direkte fra filen uden en kørende server. SHOW CREATE TABLE / mysqldump. Den korrekte måde at bruge en .frm på. /var/lib/mysql (matchende version), start tjenesten, og kør derefter SHOW CREATE TABLE eller mysqldump. CREATE TABLE-erklæringen direkte fra filen uden en kørende server. Tekniske detaljer
dyb specifikation| Filstruktur | Proprietær little-endian binær blob; ingen komprimering eller kryptering |
| Magiske bytes | 0xFE 0x01 ved offset 0 (versionsafhængig binær header; ingen stabil ASCII-signatur) |
| Indhold | Kolonnedefinitioner (navne, typer, længder, standardværdier), indeks/nøgle-metadata og tabelindstillinger - kun skema, aldrig rækkedata |
| Typisk filstørrelse | 1 KB - 50 KB pr. tabel; vokser med antallet af kolonner og indekser |
| MIME-type | application/octet-stream |
| Én fil pr. tabel | Hver tabel får sin egen .frm-fil opkaldt efter tabellen, gemt i skemaets undermappe i MySQL-datamappen |
| MyISAM-ledsagere | .MYD (rækkedata) og .MYI (indeksdata) - alle tre kræves for fuld MyISAM-tabeladgang |
| InnoDB-ledsager | .ibd-tablespace-fil - .frm indeholdt skemaet, mens .ibd indeholdt data og indekser |
| Understøttede motorer | Skrevet af alle lagringsmotorer i MySQL 3.x - 5.7: MyISAM, InnoDB, MEMORY, CSV, ARCHIVE og andre |
| Fjernet i | MySQL 8.0 (december 2018): metadata flyttet til InnoDBs transaktionelle datakatalog; ingen .frm-filer oprettes eller læses |
| Bruges stadig af | MariaDB fortsatte med at generere .frm-filer efter MySQL 8.0-opsplitningen |
| Gendannelsesværktøj | mysqlfrm (MySQL Utilities) læser en selvstændig .frm for at rekonstruere CREATE TABLE DDL-erklæringen |
| Udvikler | MySQL AB (oprindelig); Oracle Corporation (siden opkøbet i 2010) |
| Operativsystemer | Platformsuafhængig: Linux, Windows, macOS, FreeBSD - alle steder hvor MySQL eller MariaDB kørte |
| Udgivet | 1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7) |
| Seneste version | Last used in MySQL 5.7 / MariaDB; removed from MySQL 8.0 (December 2018) |
| Specifikation | dev.mysql.com |
FRM-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om FRM-filer.
Ofte stillede spørgsmål
Hvordan åbner jeg en .frm-fil?
SHOW CREATE TABLE. Åbning af den rå binære fil i en teksteditor viser kun volapyk.Kan jeg gendanne mine data fra kun en .frm-fil?
Hvordan får jeg CREATE TABLE-erklæringen fra en .frm?
SHOW CREATE TABLE.Hvorfor har MySQL 8.0 ikke .frm-filer?
Jeg kopierede .frm-filen, men får «Table doesn't exist» - hvorfor?
mysqlfrm til kun at læse strukturen.Hvilke programmer åbner .frm udover MySQL?
mysqlfrm læser den uden en server. Der findes ingen generel «fremviser» - det er et server-internt format.