Przywróciłem tabelę tylko z .frm
i .idb
pliki.
Pobierz zapytanie SQL, aby utworzyć tabele
Jeśli znasz już schemat swoich tabel, możesz pominąć ten krok.
-
Najpierw zainstaluj MySQL Utilities . Następnie możesz użyć
mysqlfrm
polecenie w wierszu poleceń (cmd). -
Po drugie, pobierz zapytania SQL z
.frm
pliki używającemysqlfrm
polecenie:mysqlfrm --diagnostic <path>/example_table.frm
Następnie możesz uzyskać zapytanie SQL, aby utworzyć taką samą tabelę strukturalną. W ten sposób:
CREATE TABLE `example_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(150) NOT NULL,
`photo_url` varchar(150) NOT NULL,
`password` varchar(600) NOT NULL,
`active` smallint(6) NOT NULL,
`plan` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;
Utwórz tabele
Utwórz tabele za pomocą powyższego zapytania SQL.
Jeśli stare dane nadal istnieją, być może trzeba będzie najpierw usunąć odpowiednią bazę danych i tabele. Upewnij się, że masz kopię zapasową plików danych.
Przywróć dane
Uruchom to zapytanie, aby usunąć nowe dane z tabeli:
ALTER TABLE example_table DISCARD TABLESPACE;
To usuwa połączenia między nowym .frm
plik i (nowy, pusty) .idb
plik. Usuń także .idb
plik w folderze.
Następnie umieść stary .idb
plik do nowego folderu, np.:
cp backup/example_table.ibd <path>/example_table.idb
Upewnij się, że plik .ibd
pliki mogą być odczytywane przez mysql
użytkownik, np. uruchamiając chown -R mysql:mysql *.ibd
w folderze.
Uruchom to zapytanie, aby zaimportować stare dane:
ALTER TABLE example_table IMPORT TABLESPACE;
To importuje dane z pliku .idb
plik i przywróci dane.