.FRM

File FRM

MySQL Table Definition File
Fai una domanda
RISPOSTA RAPIDA

Un file FRM è un file di definizione della tabella MySQL. Memorizza i nomi delle colonne, i tipi di dati e gli indici per una tabella del database, ma non i dati effettivi delle righe. Per leggerlo, esegui mysqlfrm --diagnostic sul file, oppure ripristina la directory dei dati in un server MySQL o MariaDB corrispondente. MySQL 8.0 non crea più file .frm.

Sviluppatore: MySQL AB / Oracle Corporation Categoria: File di database MIME: application/octet-stream
SI APRE SU Windows macOS Linux
Correlati: .DB · .DBF · .ACCDB · .SQL

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Aug 15, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file FRM?

Un file .frm è un file di definizione della tabella MySQL che memorizza informazioni sulla struttura e il layout di una singola tabella del database. Viene creato un file .frm per ogni tabella e il nome della tabella viene utilizzato per il nome del file .frm: quindi una tabella denominata orders produce orders.frm all'interno della directory dei dati di MySQL.

Il formato .frm registra solo lo schema della tabella: nomi delle colonne, tipi di dati, lunghezze, valori predefiniti e metadati di indici/chiavi. Non contiene mai i dati delle righe. Per le tabelle MyISAM, i dati effettivi risiedono in un file .MYD complementare (con gli indici in un file .MYI); MySQL richiedeva tutti e tre i file insieme per accedere completamente a una tabella MyISAM. Le tabelle InnoDB accoppiavano invece il loro .frm con un file tablespace .IBD separato.

Il file è un blob binario proprietario in formato little-endian che inizia con i magic bytes 0xFE 0x01. È stato introdotto con MySQL 1.0 nel 1995 ed è stato utilizzato da ogni storage engine - MyISAM e InnoDB allo stesso modo - fino a MySQL 5.7 e MariaDB. MySQL 8.0 (dicembre 2018) ha rimosso interamente i file .frm, spostando i metadati delle tabelle nel dizionario dei dati transazionali di InnoDB. MariaDB ha continuato a utilizzare i file .frm dopo tale scissione.

Quando i dati delle righe vengono persi o danneggiati, un file .frm superstite può essere ispezionato con l'utility diagnostica mysqlfrm per ricostruire l'istruzione CREATE TABLE e recuperare il layout delle colonne.

Sicurezza e incolumità

RISCHIO: LOW

Un file .frm è un metadato binario passivo della tabella: non contiene codice eseguibile ed è sicuro da maneggiare. I rischi pratici riguardano il recupero dei dati, non il malware: un .frm ripristinato in una versione di MySQL errata può fallire o corrompere il dizionario, e un .frm isolato senza i suoi .MYD/.ibd non può restituire le righe. Lavora sempre su copie, rispetta la versione originale del server e tieni insieme i file di dati complementari.

Dettagli del formato

in sintesi
NOME COMPLETOMySQL Table Definition Fileanche noto come MySQL table format file, MySQL .frm file
SVILUPPATOREMySQL AB / Oracle Corporationdal 1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7)
TIPO MIMEapplication/octet-stream
TIPOFile binario di definizione della tabella (voce del dizionario dati per una tabella)
Questa estensione è usata anche da…
  • Visual Basic Form file - File sorgente che descrive il layout e i controlli di un modulo in VB6 e versioni precedenti (testo semplice).
  • Modulo FormFlow - Documento di modulo elettronico creato dal software legacy JetForm/FormFlow.
  • Adobe FrameMaker (legacy) - Le vecchie installazioni di FrameMaker utilizzavano .frm per alcune risorse di moduli/modelli.
MAGIC BYTES · FIRMA DEL FILE
OFFSET
0001
HEX
FE01
ASCII
··
L'intestazione FRM inizia con una parola magic/versione (comunemente 0xFE 0x01 per il formato classico). Non esiste una firma ASCII stabile tra le versioni; il file è un blob binario proprietario, quindi l'identificazione avviene tramite estensione + contesto (si trova accanto a .MYD/.MYI o .ibd in una directory dei dati MySQL).

Programmi che aprono file FRM

Windows3 apps
MySQL Server Open-source Posiziona i file della tabella nella directory dei dati del server (versione corrispondente), avvia MySQL, quindi esegui SHOW CREATE TABLE / mysqldump. È il modo corretto di usare un .frm.
mysqlfrm (MySQL Utilities) Open-source Esegui «mysqlfrm --diagnostic table.frm» per leggere l'istruzione CREATE TABLE direttamente dal file, senza un server in esecuzione.
MariaDB Server Open-source MariaDB comprende ancora i .frm: installalo, inserisci i file nella sua directory dei dati ed esegui il dump dello schema/dati.
macOS1 app
MySQL Server Open-source Posiziona i file della tabella nella directory dei dati del server (versione corrispondente), avvia MySQL, quindi esegui SHOW CREATE TABLE / mysqldump. È il modo corretto di usare un .frm.
Linux2 apps
MySQL / MariaDB Server Open-source Copia i file in /var/lib/mysql (versione corrispondente), avvia il servizio, quindi SHOW CREATE TABLE o mysqldump.
mysqlfrm (MySQL Utilities) Open-source Esegui «mysqlfrm --diagnostic table.frm» per leggere l'istruzione CREATE TABLE direttamente dal file, senza un server in esecuzione.

Dettagli tecnici

specifiche approfondite
Struttura del fileBlob binario proprietario little-endian; nessuna compressione o crittografia
Magic bytes0xFE 0x01 all'offset 0 (intestazione binaria dipendente dalla versione; nessuna firma ASCII stabile)
ContenutoDefinizioni delle colonne (nomi, tipi, lunghezze, valori predefiniti), metadati di indici/chiavi e opzioni della tabella - solo schema, mai dati delle righe
Dimensione tipica del file1 KB - 50 KB per tabella; cresce con il numero di colonne e indici
Tipo MIMEapplication/octet-stream
Un file per tabellaOgni tabella riceve il proprio file .frm che prende il nome dalla tabella, memorizzato nella sottodirectory dello schema della directory dei dati di MySQL
Compagni MyISAM.MYD (dati riga) e .MYI (dati indice) - tutti e tre necessari per l'accesso completo alla tabella MyISAM
Compagno InnoDBFile tablespace .ibd - il .frm conteneva lo schema mentre il .ibd conteneva dati e indici
Copertura engineScritto da tutti gli storage engine in MySQL 3.x - 5.7: MyISAM, InnoDB, MEMORY, CSV, ARCHIVE e altri
Rimosso inMySQL 8.0 (dicembre 2018): metadati spostati nel dizionario dei dati transazionali di InnoDB; nessun file .frm creato o letto
Ancora usato daMariaDB ha continuato a generare file .frm dopo la scissione da MySQL 8.0
Utility di ripristinomysqlfrm (MySQL Utilities) legge un .frm autonomo per ricostruire l'istruzione DDL `CREATE TABLE`
SviluppatoreMySQL AB (originale); Oracle Corporation (dall'acquisizione del 2010)
Sistemi operativiMultipiattaforma: Linux, Windows, macOS, FreeBSD - ovunque sia stato eseguito MySQL o MariaDB
Rilasciato1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7)
Ultima versioneLast used in MySQL 5.7 / MariaDB; removed from MySQL 8.0 (December 2018)
Specificadev.mysql.com

Conversioni FRM

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file FRM. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file FRM.

Domande frequenti

Come si apre un file .frm?
Non si apre manualmente. Leggi il suo schema con «mysqlfrm --diagnostic table.frm», oppure inserisci i file della tabella nella directory dei dati di un server MySQL/MariaDB corrispondente ed esegui SHOW CREATE TABLE. L'apertura del binario grezzo in un editor di testo mostrerà solo caratteri incomprensibili.
Posso recuperare i miei dati solo da un file .frm?
No - il file .frm contiene solo la struttura della tabella (colonne, tipi, indici). Le righe effettive risiedono nel file .MYD (MyISAM) o .ibd (InnoDB). Senza di essi, puoi recuperare lo schema ma non i dati.
Come ottengo l'istruzione CREATE TABLE da un .frm?
Esegui «mysqlfrm --diagnostic latuatabella.frm» da MySQL Utilities, oppure ripristina il file in un server MySQL/MariaDB ed esegui SHOW CREATE TABLE.
Perché MySQL 8.0 non ha file .frm?
MySQL 8.0 (2018) ha sostituito i file .frm per singola tabella con un dizionario di dati transazionali memorizzato all'interno di InnoDB, risolvendo il vecchio problema dei file .frm che perdevano la sincronizzazione con i metadati del server.
Ho copiato il .frm ma ricevo «Table doesn't exist» - perché?
InnoDB ha bisogno del tablespace corrispondente (.ibd) e della voce nel dizionario dei dati. Copiare solo il .frm non è sufficiente; ripristina l'intera directory dei dati o usa uno strumento come mysqlfrm per leggere solo la struttura.
Quali programmi aprono i .frm oltre a MySQL?
Anche MariaDB Server comprende i .frm e mysqlfrm li legge senza un server. Non esiste un «visualizzatore» generico: è un formato interno al server.

Riferimenti

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

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.MDMarkdown Document
3.BINCD/DVD Disc Image (BIN/CUE)
4.RPMSGRestricted Permission Message
5.PARTPartial Download File
6.CRDOWNLOADChrome Partial Download File
7.NOMEDIAAndroid No-Media Marker File
8.PRDXSoftMaker Presentations Document
9.PRO6XProPresenter 6 Bundle File
10.SWFSmall Web Format (Shockwave Flash)

Estensioni correlate

.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

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z