Wenn die MySQL-Datendatei versehentlich gelöscht wird, hängt die Wiederherstellungsmethode von der Situation ab: Wenn das Binärprotokoll aktiviert ist, können SQL-Anweisungen über den Befehl mysqlbinlog abgerufen werden. Wenn ein Backup vorhanden ist, können Sie Wiederherstellungstools verwenden, um Ihre Dateien wiederherzustellen. Wenn keine Sicherung vorhanden ist, können Sie versuchen, die Datei mit dem Datenwörterbuch wiederherzustellen: Fragen Sie die Tabelle innodb_table_stats ab, um Metadaten zu erhalten. Kopiert den gelöschten .ibd-Dateiheader und überschreibt den Tablespace-.ibd-Dateiheader. Starten Sie den MySQL-Server neu, um die Datei neu zu laden.
So stellen Sie gelöschte Datendateien in MySQL wieder her
Wenn Sie versehentlich wichtige MySQL-Datendateien löschen, ist es wichtig, sie wiederherzustellen. Dieses Tutorial führt Sie Schritt für Schritt durch den Wiederherstellungsprozess.
Schritt 1: Überprüfen Sie die Binärprotokolle
Wenn Sie die Binärprotokolle vor dem Löschen aktiviert haben, können Sie die SQL-Anweisung der gelöschten Daten mit dem folgenden Befehl abrufen:
<code>mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" --stop-datetime="YYYY-MM-DD HH:MM:SS" /path/to/binary-log-file | grep 'table_name'</code>
Schritt 2: Verwenden Sie das Wiederherstellungstool
Wenn Sie die Binärprotokollierung nicht aktiviert haben, können Sie Wiederherstellungstools wie MySQL Enterprise Backup oder Percona XtraBackup verwenden, um Dateien aus Backups wiederherzustellen. Stellen Sie sicher, dass Sie über Backups verfügen, die detailliert genug sind, um die Wiederherstellung betroffener Dateien zu ermöglichen.
Schritt 3: Dateien mit dem Datenwörterbuch wiederherstellen
Wenn die oben beschriebene Methode nicht möglich ist, können Sie versuchen, das Datenwörterbuch zum Wiederherstellen von Dateien zu verwenden. Diese Methode basiert auf der Tabellenstruktur und den Daten, die noch in der Datenwörterbuchtabelle vorhanden sind.
<code>mysql -u <username> -p USE information_schema;</code>
innodb_table_stats
ab, um Metadaten für gelöschte Dateien abzurufen: innodb_table_stats
表以获取已删除文件的元数据:<code>SELECT table_name, data_file_pos FROM innodb_table_stats WHERE table_id = <table_id>;</code>
.ibd
文件的位置。.ibd
文件的头部,其中包含文件元数据。.ibd
文件。dd
命令将 .ibd
文件的头部复制到表空间 .ibd
文件中:<code>dd if=<deleted_ibd_file_path> of=<table_space_ibd_file_path> bs=512 count=2048</code>
.ibd
.ibd
, die die gelöschten Daten enthält. Kopieren Sie den Header der Datei .ibd
, die Dateimetadaten enthält.
.ibd
, die gelöschte Daten enthält. dd
, um den Header der Datei .ibd
in die Tabellenbereichsdatei .ibd
zu kopieren: .ibd
neu laden kann. Das obige ist der detaillierte Inhalt vonSo stellen Sie gelöschte Datendateien in MySQL wieder her. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!