Heim >Datenbank >MySQL-Tutorial >Können wir die MySQL-Tabellenstruktur nur aus FRM- und IBD-Dateien wiederherstellen?

Können wir die MySQL-Tabellenstruktur nur aus FRM- und IBD-Dateien wiederherstellen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-07 19:06:41378Durchsuche

Can We Recover MySQL Table Structure from FRM and IBD Files Only?

Stellen Sie MySQL-Tabellenstrukturen nur aus FRM- und IBD-Dateien wieder her

Frage:

Benutzer stoßen häufig auf Situationen, in denen sie eine Datenbank wiederherstellen müssen, aber nur auf die FRM- und IBD-Dateien zugreifen können.

Kann die Tabellenstruktur wiederhergestellt werden?

Ja, die Tabellenstruktur kann aus der FRM-Datei auch ohne IB_LOG-Datei wiederhergestellt werden.

Schritte:

1. SQL-Erstellungsanweisung aus der FRM-Datei extrahieren:

  • Installieren Sie die MySQL-Dienstprogramme.
  • Verwenden Sie den Befehl mysqlfrm --diagnostic, um SQL-Erstellungsanweisungen für jede FRM-Datei zu generieren.
  • Die Ausgabe enthält Anweisungen ähnlich wie:
<code class="language-sql">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;</code>

2. Verwenden Sie SQL-Anweisungen, um Tabellen zu erstellen:

  • Löschen Sie alle vorhandenen Tabellen (falls erforderlich).
  • Führen Sie die in Schritt 1 erhaltene SQL-Erstellungsanweisung aus, um eine Tabelle mit derselben Struktur wie die Originaltabelle zu erstellen.

3. Daten wiederherstellen:

  • Verwenden Sie den folgenden Befehl, um neue Tabellendaten zu löschen:
<code class="language-sql">ALTER TABLE example_table DISCARD TABLESPACE;</code>
  • Löschen Sie die entsprechende IBD-Datei im Tabellenverzeichnis.
  • Original-IBD-Dateien in das Verzeichnis kopieren:
<code class="language-bash">cp backup/example_table.ibd /path/to/example_table.idb</code>
  • Stellen Sie sicher, dass die IBD-Datei den richtigen Besitz und die richtigen Berechtigungen hat.
  • Alte Daten importieren:
<code class="language-sql">ALTER TABLE example_table IMPORT TABLESPACE;</code>

Das obige ist der detaillierte Inhalt vonKönnen wir die MySQL-Tabellenstruktur nur aus FRM- und IBD-Dateien wiederherstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn