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ć
mysqlfrmpolecenie w wierszu poleceń (cmd). -
Po drugie, pobierz zapytania SQL z
.frmpliki używającemysqlfrmpolecenie: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.