Co to jest format pliku FRM?
Plik .frm to plik definicji tabeli MySQL, który przechowuje informacje o strukturze i układzie pojedynczej tabeli bazy danych. Jeden plik .frm jest tworzony dla każdej tabeli, a nazwa tabeli jest używana jako nazwa pliku .frm - zatem tabela o nazwie orders generuje plik orders.frm wewnątrz katalogu danych MySQL.
Format .frm rejestruje tylko schemat tabeli: nazwy kolumn, typy danych, długości, wartości domyślne oraz metadane indeksów/kluczy. Nigdy nie przechowuje danych wierszy. W przypadku tabel MyISAM rzeczywiste dane znajdują się w towarzyszącym pliku .MYD (z indeksami w pliku .MYI); MySQL wymagał wszystkich trzech plików razem, aby w pełni uzyskać dostęp do tabeli MyISAM. Tabele InnoDB parowały swój plik .frm z oddzielnym plikiem przestrzeni tabel .IBD.
Plik jest zastrzeżonym binarnym obiektem typu blob w formacie little-endian, zaczynającym się od bajtów magicznych 0xFE 0x01. Został wprowadzony wraz z MySQL 1.0 w 1995 roku i był używany przez każdy silnik pamięci masowej - zarówno MyISAM, jak i InnoDB - do wersji MySQL 5.7 i MariaDB. MySQL 8.0 (grudzień 2018) całkowicie usunął pliki .frm, przenosząc metadane tabel do transakcyjnego słownika danych InnoDB. MariaDB kontynuowała używanie plików .frm po tym podziale.
W przypadku utraty lub uszkodzenia danych wierszy, ocalały plik .frm może zostać zbadany za pomocą narzędzia diagnostycznego mysqlfrm w celu zrekonstruowania instrukcji CREATE TABLE i odzyskania układu kolumn.
Bezpieczeństwo
RYZYKO: LOWPlik .frm to pasywne binarne metadane tabeli - nie zawiera kodu wykonywalnego i jest bezpieczny w obsłudze. Praktyczne ryzyko dotyczy odzyskiwania danych, a nie złośliwego oprogramowania: plik .frm przywrócony do niewłaściwej wersji MySQL może zawieść lub uszkodzić słownik, a sam plik .frm bez towarzyszących mu plików .MYD/.ibd nie zwróci wierszy. Zawsze pracuj na kopiach, dopasuj wersję serwera i przechowuj towarzyszące pliki danych razem.
Szczegóły formatu
w pigułce- Plik formularza Visual Basic - Plik źródłowy opisujący układ i kontrolki formularza w VB6 i starszych (zwykły tekst).
- Formularz FormFlow - Elektroniczny dokument formularza utworzony przez starsze oprogramowanie JetForm/FormFlow.
- Adobe FrameMaker (starsze wersje) - Starsze instalacje FrameMaker używały rozszerzenia .frm dla niektórych zasobów formularzy/szablonów.
Programy otwierające pliki FRM
Szczegóły techniczne
specyfikacja| Struktura pliku | Zastrzeżony binarny obiekt blob little-endian; brak kompresji i szyfrowania |
| Magiczne bajty | 0xFE 0x01 pod offsetem 0 (nagłówek binarny zależny od wersji; brak stabilnej sygnatury ASCII) |
| Zawartość | Definicje kolumn (nazwy, typy, długości, wartości domyślne), metadane indeksów/kluczy i opcje tabeli - tylko schemat, nigdy dane wierszy |
| Typowy rozmiar pliku | 1 KB - 50 KB na tabelę; rośnie wraz z liczbą kolumn i indeksów |
| Typ MIME | application/octet-stream |
| Jeden plik na tabelę | Każda tabela otrzymuje własny plik .frm o nazwie odpowiadającej tabeli, przechowywany w podkatalogu schematu w katalogu danych MySQL |
| Towarzysze MyISAM | .MYD (dane wierszy) i .MYI (dane indeksów) - wszystkie trzy wymagane do pełnego dostępu do tabeli MyISAM |
| Towarzysz InnoDB | Plik przestrzeni tabel .ibd - plik .frm zawierał schemat, podczas gdy .ibd zawierał dane i indeksy |
| Obsługa silników | Zapisywany przez wszystkie silniki pamięci masowej w MySQL 3.x - 5.7: MyISAM, InnoDB, MEMORY, CSV, ARCHIVE i inne |
| Usunięto w | MySQL 8.0 (grudzień 2018): metadane przeniesione do transakcyjnego słownika danych InnoDB; pliki .frm nie są już tworzone ani odczytywane |
| Nadal używany przez | MariaDB kontynuowała generowanie plików .frm po rozłamie z MySQL 8.0 |
| Narzędzie do odzyskiwania | mysqlfrm (MySQL Utilities) odczytuje samodzielny plik .frm w celu rekonstrukcji instrukcji DDL CREATE TABLE |
| Deweloper | MySQL AB (oryginalnie); Oracle Corporation (od przejęcia w 2010 roku) |
| Systemy operacyjne | Wieloplatformowy: Linux, Windows, macOS, FreeBSD - wszędzie tam, gdzie działa MySQL lub MariaDB |
| Wydano | 1995 (MySQL 1.0, used by ISAM/MyISAM/InnoDB through MySQL 5.7) |
| Najnowsza wersja | Last used in MySQL 5.7 / MariaDB; removed from MySQL 8.0 (December 2018) |
| Specyfikacja | dev.mysql.com |
Konwersje FRM
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki FRM.