Ich habe die Tabelle nur aus .frm wiederhergestellt und .idb Dateien.
Holen Sie sich die SQL-Abfrage, um die Tabellen zu erstellen
Wenn Sie das Schema Ihrer Tabellen bereits kennen, können Sie diesen Schritt überspringen.
-
Installieren Sie zuerst MySQL Utilities .Dann können Sie
mysqlfrmverwenden Befehl in der Eingabeaufforderung (cmd). -
Zweitens holen Sie sich die SQL-Abfragen aus
.frmDateien mitmysqlfrmBefehl:mysqlfrm --diagnostic <path>/example_table.frm
Dann können Sie die SQL-Abfrage dazu bringen, dieselbe strukturierte Tabelle zu erstellen. So:
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;
Erstellen Sie die Tabellen
Erstellen Sie die Tabelle(n) mit der obigen SQL-Abfrage.
Wenn die alten Daten noch vorhanden sind, müssen Sie möglicherweise zuerst die entsprechende Datenbank und die entsprechenden Tabellen löschen. Stellen Sie sicher, dass Sie eine Sicherungskopie der Datendateien haben.
Daten wiederherstellen
Führen Sie diese Abfrage aus, um neue Tabellendaten zu entfernen:
ALTER TABLE example_table DISCARD TABLESPACE;
Dadurch werden Verbindungen zwischen der neuen .frm entfernt Datei und die (neue, leere) .idb Datei. Entfernen Sie auch die .idb Datei im Ordner.
Legen Sie dann die alte .idb ab Datei in den neuen Ordner, z. B.:
cp backup/example_table.ibd <path>/example_table.idb
Stellen Sie sicher, dass die Datei .ibd Dateien können von mysql gelesen werden Benutzer, z. indem Sie chown -R mysql:mysql *.ibd ausführen im Ordner.
Führen Sie diese Abfrage aus, um alte Daten zu importieren:
ALTER TABLE example_table IMPORT TABLESPACE;
Dies importiert Daten aus der .idb Datei und stellt die Daten wieder her.