3 Methoden zum Wiederherstellen der Tabellenstruktur aus einer FRM-Datei in MySQL [empfohlen]

3 Methoden zum Wiederherstellen der Tabellenstruktur aus einer FRM-Datei in MySQL [empfohlen]

Wenn MySQL normal ausgeführt wird, ist es nicht schwierig, die Tabellenstruktur anzuzeigen.

Aber manchmal schlägt MySQL fehl und diese Methode ist nicht mehr durchführbar.

Wenn ein Fehler auftritt, wird normalerweise eine neue MySQL-Instanz verwendet, um die aktuellen Daten wiederherzustellen.

Das Erstellen einer Tabelle ist ein sehr wichtiger Schritt und wir müssen andere Möglichkeiten haben, die Tabellenstruktur zu finden.

Wo ist die Tabellenstruktur definiert?

Die Benutzerdaten, die im Allgemeinen von Interesse sind, werden tatsächlich im MySQL-Datenverzeichnis gespeichert.
Andere Metadaten bilden hiervon keine Ausnahme, wie etwa die Definition der Tabellenstruktur.

Die Dateistruktur des MySQL-Datenverzeichnisses ist sehr klar.

• Katalogzuordnungsdatenbank
• Die frm-Datei speichert die Definition der Tabellenstruktur
•ibdata-Dateien speichern MySQL-Metadaten und andere

Die durch die Tabelle definierte Struktur ist in der FRM-Datei vorhanden, und natürlich verfügen auch die IBData, die die Metadaten verwalten, über Datensätze.

Wenn die FRM-Datei vorhanden ist, ist es relativ einfach, die Tabellenstruktur wiederherzustellen.
Wenn jedoch „Drop Table“ ausgeführt wird, wird die FRM-Datei gelöscht und die in diesem Artikel beschriebene Methode hilft nicht weiter.
In diesem Fall können Sie versuchen, die Tabellenstruktur aus ibdata wiederherzustellen, was jedoch nicht Gegenstand der folgenden Diskussion ist.

Analysieren der Tabellenstruktur

Im Folgenden finden Sie drei Möglichkeiten zum Analysieren des Befehls „Create Table“ aus der FRM-Datei.

mysqlfrm

mysqlfrm ist eines der MySQL-Dienstprogramme.
Wird verwendet, um FRM-Dateien zu analysieren und Befehle zum Erstellen von Tabellen zu generieren.
Es wird nicht mehr aktualisiert und einige seiner Funktionen wurden in neuere Versionen von MySQL Shell (Version 8 und höher) integriert.

MySQL-Dienstprogramme erfordern eine Python2-Umgebung und die Installation ist sehr einfach.

$ tar -xvzf mysql-utilities-1.6.5.tar.gz
$ cd mysql-utilities-1.6.5
$ python setup.py bauen
$ python setup.py installieren

mysqlfrm unterstützt zwei Modi zum Interpretieren von frm:

Direkte Analyse

Dieser Modus ist relativ unkompliziert: Er analysiert die FRM-Datei Byte für Byte und extrahiert so viele Informationen wie möglich.

In diesem Modus muss der Parameter --diagnostic verwendet werden.

$ mysqlfrm --diagnostic /data/sakila/actor.frm

MySQL-Beispielanalyse

Dieser Modus verwendet eine neue MySQL-Instanz, um die FRM-Analysearbeit abzuschließen.
Es gibt zwei Möglichkeiten, anzugeben, wie eine neue MySQL-Instanz gestartet werden soll.

1. Starten Sie den aktuellen MySQL-Dienst und verwenden Sie --server, um den MySQL-Dienst anzugeben

$ mysqlfrm --server=root:pass@localhost:3306 --port=3310 /data/sakila/actor.frm

Zweitens starten Sie eine neue MySQL-Instanz und verwenden --basedir, um den MySQL-Programmpfad anzugeben

$ mysqlfrm --basedir=/usr/local/bin/mysql --port=3310 /data/sakila/actor.frm

--port gibt den Port für die neue Instanz an, um Konflikte mit dem aktuellen Port 3306 zu vermeiden.

Abonnieren

Dies ist ein Tool, das ich zufällig entdeckt habe. Es stellt sich in der Dokumentation wie folgt vor:

dbsake - ein (s)wiss-(a)rmy-(k)nif(e) für MySQL

Der Autor muss jemand sein, der viel Erfahrung mit MySQL hat. Das Tool ist vom Herunterladen über die Installation bis hin zur Verwendung einfach und übersichtlich.

$ curl -s get.dbsake.net > dbsake
$ chmod u+x dbsake
$ ./dbsake frmdump [frm-Dateipfad]

Onlineservice

Es gibt einige Online-Dienste, die sich ebenfalls mit solchen Themen befassen.
Ich habe TwinDB online verwendet und bin sehr zufrieden damit. Auch der zugehörige Werkzeugsatz ist großartig.

Laden Sie über den Eintrag „Struktur wiederherstellen -> aus .frm-Datei“ das FRM hoch, und Sie erhalten den Befehl zum Erstellen einer Tabelle.

Abschließende Gedanken

Bei der Verwendung können Sie mehrere Tools testen, vergleichen, welche Wiederherstellungsbefehle umfassender und wünschenswerter sind, und das beste auswählen.

siehe:

• offizielles mysqlfrm-Dokument

•dbsake-Projektdokument

Zusammenfassen

Oben sind die drei Methoden, die ich Ihnen vorgestellt habe, um die Tabellenstruktur von MySQL aus der frm-Datei wiederherzustellen. Ich hoffe, sie werden Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So stellen Sie einzelne Tabellendaten mithilfe der vollständigen MySQL-Datenbanksicherungsdaten wieder her
  • So stellen Sie eine einzelne Datenbank oder Tabelle in MySQL wieder her und mögliche Fallstricke
  • Schritte zum Wiederherstellen einer einzelnen MySQL-Tabelle
  • So stellen Sie eine Datenbank und eine Tabelle aus einer vollständigen MySQL-Datenbanksicherung wieder her
  • InnoDB-Typ MySql stellt Tabellenstruktur und Daten wieder her
  • MySQL-Wiederherstellung angegebener Tabellen und Bibliotheken aus einer vollständigen Datenbanksicherung – Beispiel
  • Detaillierte Erläuterung der Methode zur Wiederherstellung von MySQL-Einzeltabellen-IBD-Dateien
  • MySQL verwendet .frm, um die Datentabellenstruktur wiederherzustellen
  • So verwenden Sie mysqldump zum Sichern und Wiederherstellen bestimmter Tabellen
  • MySQL verwendet frm-Dateien und ibd-Dateien, um Tabellendaten wiederherzustellen

<<:  Docker: Das Ändern des DOCKER_OPTS-Parameters in /etc/default/docker wird nicht wirksam

>>:  So erstellen Sie Ihre eigene Angular-Komponentenbibliothek mit DevUI

Artikel empfehlen

mysql 8.0.19 winx64.zip Installations-Tutorial

Dieser Artikel zeichnet das Installationstutorial...

So erhalten Sie Root-Berechtigungen in einem Docker-Container

Zunächst muss Ihr Container laufen Sie können die...

So vergessen Sie das Root-Passwort in Mysql8.0.13 unter Windows 10

1. Stoppen Sie zuerst den MySQL-Dienst Öffnen Sie...

Eine kurze Diskussion über die VUE Uni-App-Entwicklungsumgebung

Inhaltsverzeichnis 1. Über die visuelle Schnittst...

JS removeAttribute()-Methode zum Löschen eines Attributs eines Elements

Verwenden Sie in JavaScript die Methode removeAtt...

Detaillierte Erklärung der allgemeinen Verwendung von MySQL-Abfragebedingungen

Dieser Artikel veranschaulicht anhand von Beispie...

Natives JS zum Erstellen eines verschiebbaren Anmeldefelds

Dieser Artikel zeigt ein verschiebbares Anmeldefe...

jQuery realisiert Bildhervorhebung

Es ist sehr üblich, Bilder auf einer Seite hervor...

Vue+echarts realisiert gestapelte Balkendiagramme

In diesem Artikel wird der spezifische Code von V...

Vergleich der JS-Array-Loop-Methode und der Effizienzanalyse

Array-Methoden JavaScript bietet viele Array-Meth...