O que é o formato de ficheiro FRM?
Um arquivo .frm é um arquivo de definição de tabela MySQL que armazena informações sobre a estrutura e o layout de uma única tabela de banco de dados. Um arquivo .frm é criado para cada tabela, e o nome da tabela é usado para o nome do arquivo .frm - assim, uma tabela chamada orders produz orders.frm dentro do diretório de dados do MySQL.
O formato .frm registra apenas o esquema da tabela: nomes de colunas, tipos de dados, comprimentos, valores padrão e metadados de índices/chaves. Ele nunca contém dados de linhas. Para tabelas MyISAM, os dados reais residem em um arquivo .MYD complementar (com índices em um arquivo .MYI); o MySQL exigia os três arquivos juntos para acessar totalmente uma tabela MyISAM. As tabelas InnoDB emparelhavam seu .frm com um arquivo de tablespace .IBD separado.
O arquivo é um blob binário proprietário em little-endian que começa com os magic bytes 0xFE 0x01. Foi introduzido com o MySQL 1.0 em 1995 e usado por todos os mecanismos de armazenamento - tanto MyISAM quanto InnoDB - até o MySQL 5.7 e MariaDB. O MySQL 8.0 (dezembro de 2018) removeu completamente os arquivos .frm, movendo os metadados da tabela para o dicionário de dados transacional do InnoDB. O MariaDB continuou usando arquivos .frm após essa divisão.
Quando os dados das linhas são perdidos ou corrompidos, um arquivo .frm sobrevivente pode ser inspecionado com o utilitário de diagnóstico mysqlfrm para reconstruir a instrução CREATE TABLE e recuperar o layout das colunas.
Segurança e proteção
RISCO: LOWUm arquivo .frm é um metadado de tabela binário passivo - não contém código executável e é seguro de manusear. Os riscos práticos são de recuperação de dados, não de malware: um .frm restaurado na versão errada do MySQL pode falhar ou corromper o dicionário, e um .frm isolado sem seus arquivos .MYD/.ibd não pode retornar suas linhas. Sempre trabalhe em cópias, use a versão original do servidor e mantenha os arquivos de dados complementares juntos.
Detalhes do formato
em resumo- Arquivo de Formulário Visual Basic - Arquivo fonte que descreve o layout e os controles de um formulário no VB6 e versões anteriores (texto simples).
- Formulário FormFlow - Documento de formulário eletrônico criado pelo software legado JetForm/FormFlow.
- Adobe FrameMaker (legado) - Instalações mais antigas do FrameMaker usavam .frm para alguns recursos de formulário/modelo.
Programas que abrem arquivos FRM
Detalhes técnicos
especificação profunda| Estrutura do arquivo | Blob binário proprietário little-endian; sem compressão ou criptografia |
| Magic bytes | 0xFE 0x01 no deslocamento 0 (cabeçalho binário dependente da versão; sem assinatura ASCII estável) |
| Conteúdo | Definições de colunas (nomes, tipos, comprimentos, padrões), metadados de índices/chaves e opções de tabela - apenas esquema, nunca dados de linha |
| Tamanho típico do arquivo | 1 KB - 50 KB por tabela; cresce com a contagem de colunas e índices |
| Tipo MIME | application/octet-stream |
| Um arquivo por tabela | Cada tabela recebe seu próprio arquivo .frm com o nome da tabela, armazenado no subdiretório do esquema no diretório de dados do MySQL |
| Companheiros MyISAM | .MYD (dados de linha) e .MYI (dados de índice) - todos os três necessários para acesso total à tabela MyISAM |
| Companheiro InnoDB | Arquivo de tablespace .ibd - o .frm continha o esquema enquanto o .ibd continha dados e índices |
| Cobertura de mecanismos | Gravado por todos os mecanismos de armazenamento no MySQL 3.x - 5.7: MyISAM, InnoDB, MEMORY, CSV, ARCHIVE e outros |
| Removido em | MySQL 8.0 (dezembro de 2018): metadados movidos para o dicionário de dados transacional do InnoDB; nenhum arquivo .frm é criado ou lido |
| Ainda usado por | O MariaDB continuou gerando arquivos .frm após a divisão do MySQL 8.0 |
| Utilitário de recuperação | mysqlfrm (MySQL Utilities) lê um .frm autônomo para reconstruir a instrução DDL CREATE TABLE |
| Desenvolvedor | MySQL AB (original); Oracle Corporation (desde a aquisição em 2010) |
| Sistemas operacionais | Multiplataforma: Linux, Windows, macOS, FreeBSD - em qualquer lugar onde o MySQL ou MariaDB fosse executado |
| Lançado | 1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7) |
| Versão mais recente | Last used in MySQL 5.7 / MariaDB; removed from MySQL 8.0 (December 2018) |
| Especificação | dev.mysql.com |
Conversões de FRM
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos FRM.