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

Installationsschritte für das grafische MySQL-Verwaltungstool Navicat

Inhaltsverzeichnis Vorwort 1. Stellen Sie das Ins...

Tutorial zu HTML-Tabellen-Tags (20): Zeilenhintergrund-Farbattribut BGCOLOR

Mit dem BGCOLOR-Attribut kann die Hintergrundfarb...

Implementierung einer Lösung für adaptive Textbereichshöhe in Vue

Inhaltsverzeichnis Versteckte Probleme Lösung zur...

Zusammenfassung von 28 gängigen JavaScript-String-Methoden und Verwendungstipps

Inhaltsverzeichnis Vorwort 1. Ermitteln Sie die L...

VMware12.0-Installation Ubuntu14.04 LTS-Tutorial

Ich habe verschiedene Images sowohl unter virtuel...

jQuery realisiert den Effekt der Sitzplatzauswahl und -reservierung im Theater

jQuery realisiert den Effekt der Sitzplatzauswahl...

Kurze Analyse des MySQL B-Tree-Index

B-Baum-Index Verschiedene Speicher-Engines können...

So verwenden Sie den JS-Code-Compiler Monaco

Vorwort Meine Anforderungen sind Syntaxhervorhebu...

Erläuterung unveränderlicher Werte in React

Inhaltsverzeichnis Was sind unveränderliche Werte...

Beispiel für eine HTTPS-Konfigurationsmethode für den Nginx-Server

Linux: Linux-Version 3.10.0-123.9.3.el7.x86_64 Ng...

Einige wunderbare Verwendungsmöglichkeiten von URL-Objekten in JavaScript

Inhaltsverzeichnis Vorwort Parameter analysieren ...