¿Qué es el formato de archivo FRM?
Un archivo .frm es un archivo de definición de tabla de MySQL que almacena información sobre la estructura y el diseño de una sola tabla de base de datos. Se crea un archivo .frm por cada tabla, y el nombre de la tabla se utiliza para el nombre del archivo .frm; por lo tanto, una tabla llamada orders produce orders.frm dentro del directorio de datos de MySQL.
El formato .frm registra únicamente el esquema de la tabla: nombres de columnas, tipos de datos, longitudes, valores predeterminados y metadatos de índices/claves. Nunca contiene datos de filas. Para las tablas MyISAM, los datos reales residen en un archivo .MYD complementario (con los índices en un archivo .MYI); MySQL requería los tres archivos juntos para acceder plenamente a una tabla MyISAM. Las tablas InnoDB emparejaban su .frm con un archivo de espacio de tablas .IBD independiente en su lugar.
El archivo es un bloque binario propietario en formato little-endian que comienza con los magic bytes 0xFE 0x01. Fue introducido con MySQL 1.0 en 1995 y utilizado por todos los motores de almacenamiento -tanto MyISAM como InnoDB- hasta MySQL 5.7 y MariaDB. MySQL 8.0 (diciembre de 2018) eliminó los archivos .frm por completo, trasladando los metadatos de las tablas al diccionario de datos transaccional de InnoDB. MariaDB continuó utilizando archivos .frm después de esa división.
Cuando los datos de las filas se pierden o se corrompen, un archivo .frm superviviente puede ser inspeccionado con la utilidad de diagnóstico mysqlfrm para reconstruir la sentencia CREATE TABLE y recuperar el diseño de las columnas.
Seguridad y protección
RIESGO: LOWUn archivo .frm es un metadato de tabla binario pasivo: no contiene código ejecutable y es seguro de manipular. Los riesgos prácticos son de recuperación de datos, no de malware: un .frm restaurado en la versión incorrecta de MySQL puede fallar o corromper el diccionario, y un .frm solitario sin su .MYD/.ibd no puede devolver sus filas. Trabaje siempre sobre copias, use la versión original del servidor y mantenga juntos los archivos de datos complementarios.
Detalles del formato
en pocas palabras- Archivo de formulario de Visual Basic - Archivo fuente que describe el diseño y los controles de un formulario en VB6 y versiones anteriores (texto plano).
- Formulario FormFlow - Documento de formulario electrónico creado por el software heredado JetForm/FormFlow.
- Adobe FrameMaker (heredado) - Las instalaciones antiguas de FrameMaker utilizaban .frm para algunos recursos de formularios/plantillas.
Programas que abren archivos FRM
Detalles técnicos
especificación profunda| Estructura de archivo | Bloque binario propietario little-endian; sin compresión ni cifrado |
| Magic bytes | 0xFE 0x01 en el desplazamiento 0 (encabezado binario dependiente de la versión; sin firma ASCII estable) |
| Contenido | Definiciones de columnas (nombres, tipos, longitudes, valores predeterminados), metadatos de índices/claves y opciones de tabla - solo esquema, nunca datos de filas |
| Tamaño de archivo típico | 1 KB - 50 KB por tabla; crece con el número de columnas e índices |
| Tipo MIME | application/octet-stream |
| Un archivo por tabla | Cada tabla tiene su propio archivo .frm con el nombre de la tabla, almacenado en el subdirectorio del esquema dentro del directorio de datos de MySQL |
| Complementos MyISAM | .MYD (datos de filas) y .MYI (datos de índices) - los tres son necesarios para el acceso completo a la tabla MyISAM |
| Complemento InnoDB | Archivo de espacio de tablas .ibd - el .frm contenía el esquema mientras que el .ibd contenía los datos e índices |
| Soporte de motores | Escrito por todos los motores de almacenamiento en MySQL 3.x - 5.7: MyISAM, InnoDB, MEMORY, CSV, ARCHIVE y otros |
| Eliminado en | MySQL 8.0 (diciembre de 2018): los metadatos se movieron al diccionario de datos transaccional de InnoDB; no se crean ni leen archivos .frm |
| Todavía usado por | MariaDB continuó generando archivos .frm después de la división de MySQL 8.0 |
| Utilidad de recuperación | mysqlfrm (MySQL Utilities) lee un .frm independiente para reconstruir la sentencia DDL CREATE TABLE |
| Desarrollador | MySQL AB (original); Oracle Corporation (desde la adquisición en 2010) |
| Sistemas operativos | Multiplataforma: Linux, Windows, macOS, FreeBSD - en cualquier lugar donde se ejecute MySQL o MariaDB |
| Lanzado | 1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7) |
| Última versión | Last used in MySQL 5.7 / MariaDB; removed from MySQL 8.0 (December 2018) |
| Especificación | dev.mysql.com |
Conversiones de FRM
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos FRM.