496 Stimmen

Wie löse ich den Fehler "Error: MySQL wurde unerwartet heruntergefahren"?

Wenn ich XAMPP öffne und auf die Schaltfläche "MySQL starten" klicke, erhalte ich einen Fehler. Ich hatte es gerade erst gestartet, aber jetzt funktioniert es nicht.

12:19:12 PM [mysql] Versuche MySQL-App zu starten...
12:19:12 PM [mysql] Statusänderung erkannt: läuft
12:19:13 PM [mysql] Statusänderung erkannt: gestoppt
12:19:13 PM [mysql] Fehler: MySQL unerwartet beendet.
12:19:13 PM [mysql] Dies könnte auf einen blockierten Port, fehlende Abhängigkeiten, falsche Berechtigungen, einen Absturz oder ein Herunterfahren durch eine andere Methode zurückzuführen sein.
12:19:13 PM [mysql] Drücken Sie die Schaltfläche Protokolle, um Fehlerprotokolle anzuzeigen und überprüfen
12:19:13 PM [mysql] den Windows Event Viewer für weitere Hinweise.
12:19:13 PM [mysql] Wenn Sie weitere Hilfe benötigen, kopieren Sie dieses
12:19:13 PM [mysql] gesamte Protokollfenster und posten Sie es in den Foren

Hier ist der Inhalt des Fehlerprotokolls:

2013-08-02 12:19:12 4536 [Hinweis] Plugin 'FEDERATED' ist deaktiviert.
2013-08-02 12:19:12 f64 InnoDB: Warnung: Die Verwendung von innodb_additional_mem_pool_size ist VERALTET. Diese Option kann in zukünftigen Versionen zusammen mit der Option innodb_use_sys_malloc und dem internen Speicheralloktor von InnoDB entfernt werden.
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Der InnoDB-Speicherhaufen ist deaktiviert.
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Mutexe und rw_locks verwenden Windows-interne Funktionen
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Komprimierte Tabellen verwenden zlib 1.2.3
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Keine Verwendung von CPU crc32-Anweisungen
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Initialisierung des Pufferpools, Größe = 16,0M
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Initialisierung des Pufferpools abgeschlossen
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Höchst unterstütztes Dateiformat ist Barracuda.
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Die Log-Sequenznummern 0 und 0 in ibdata-Dateien stimmen nicht mit der Log-Sequenznummer 1616798 in den ib_logfiles überein!
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Die Datenbank wurde nicht ordnungsgemäß heruntergefahren!
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Starte Crash-Recovery.
2013-08-02 12:19:12 4536 [Hinweis] InnoDB: Lese Tablespace-Informationen aus den .ibd-Dateien...

Die wichtigste Fehlermeldung lautet hier:

2013-08-02 12:19:12 4536 [FEHLER] InnoDB:
Versuchte, einen zuvor geöffneten Tablespace zu öffnen.
Vorheriger Tablespace mysql/innodb_table_stats verwendet die Space-ID: 1 im Dateipfad: .\mysql\innodb_table_stats.ibd.
Kann Tablespace xat/payments nicht öffnen, der die Space-ID: 1 im Dateipfad: .\xat\payments.ibd verwendet

Der Rest des Protokolls:

InnoDB: Fehler: Die einzelne Tabellen-Tablespace-Datei .\xat\payments.ibd konnte nicht geöffnet werden
InnoDB: Wir setzen die Crash-Recovery nicht fort, da die Tabelle beschädigt werden könnte
InnoDB: wenn wir die Logdatensätze im InnoDB-Log nicht darauf anwenden können.
InnoDB: Um das Problem zu lösen und mysqld zu starten:
InnoDB: 1) Wenn es ein Berechtigungsproblem in der Datei gibt und mysqld die
InnoDB: Datei nicht öffnen kann, sollten Sie die Berechtigungen ändern.
InnoDB: 2) Wenn die Tabelle nicht benötigt wird oder Sie sie aus einem Backup wiederherstellen können,
InnoDB: können Sie die .ibd-Datei entfernen, und InnoDB wird eine normale
InnoDB: Crash-Recovery durchführen und diese Tabelle ignorieren.
InnoDB: 3) Wenn das Dateisystem oder die Festplatte defekt ist und Sie die
InnoDB: .ibd-Datei nicht entfernen können, können Sie innodb_force_recovery > 0 in my.cnf setzen
InnoDB: und InnoDB zwingen, die Crash-Recovery fortzusetzen.

Was ist die Ursache dieser Fehler und wie kann ich sie beheben?

52voto

Kerim Punkte 1101
  1. Gehen Sie zu mysql/data/
  2. Löschen Sie alle zufälligen Dateien (außer den tatsächlichen Datenbankordnern)
  3. Starten Sie Apache und MySQL neu.

Das sollte es beheben.

35voto

Nazmul Hoque Punkte 761

Folgen Sie einfach diesen zwei Schritten

  1. Gehen Sie zu xampp\mysql\backup
    kopieren Sie alles aus dem Backup-Ordner

  2. Gehen Sie zu xampp\mysql\data
    fügen Sie alles im Datenordner ein, was aus dem Backup-Ordner kopiert wurde

  3. Das ist alles.

Befolgen Sie auch die Anweisungen im Video, um das Problem ohne Datenverlust zu beheben:

https://www.youtube.com/watch?v=hB1wshpP3Jc

Oder befolgen Sie die Anweisungen im Artikel, um das Problem ohne Datenverlust zu beheben:

https://webjourney.dev/error-mysql-shutdown-unexpectedly-solve-without-loosing-any-data-webjourney

34voto

UPDATE APRIL (2022)

  1. Benennen Sie den Ordner mysql/data in mysql/data_old um
  2. Erstellen Sie eine Kopie des Ordners mysql/backup und benennen Sie diese als mysql/data
  3. Kopieren Sie alle Ihre Datenbankordner und den mysql-Ordner von mysql/data_old in mysql/data
  4. Kopieren Sie die Datei mysql/data_old/ibdata1 in den Ordner mysql/data

Starten Sie MySQL vom XAMPP-Controlpanel aus

REFERENZ

https://www.youtube.com/watch?v=ipMedkjMupw&ab_channel=GeekyScript

24voto

Ryan Williams Punkte 675

Wenn Sie XAMPP nicht als Administrator ausführen, führt das häufige Herunterfahren von MySQL zu Korruption, was bedeutet, dass Sie Ihre Tabellen reparieren oder löschen müssen. Um dies zu vermeiden, müssen Sie entweder XAMPP als Administrator ausführen oder die richtige Methode über die Befehlszeile verwenden, um MySQL herunterzufahren.

Sie können ibdata1 löschen, wie es Kratos vorschlägt, aber dies kann dazu führen, dass Ihre Datenbank beschädigt wird, da andere Teile Ihrer Datenbank noch im /mysql/data/-Ordner vorhanden sind. In meinem Fall hat mich dieser verbleibende Datenbestand daran gehindert, WordPress erfolgreich zu installieren.

Ein saubererer Weg, um den Schaden rückgängig zu machen, ist Ihr gesamter /mysql/data/-Ordner zurückzusetzen. Windows hat eine integrierte Ordnerversionierung - klicken Sie mit der rechten Maustaste auf /mysql/data/ und wählen Sie Frühere Versionen wiederherstellen. Sie können dann den aktuellen Inhalt des Ordners löschen und durch den Inhalt der früheren Version ersetzen.

Zusatz: Um sicherzustellen, dass Sie nicht vergessen XAMPP als Administrator auszuführen, können Sie mit der rechten Maustaste auf die Verknüpfung von XAMPP klicken, zu Eigenschaften gehen, dann Erweitert und schließlich Als Administrator ausführen aktivieren.

15voto

Yasir Ijaz Punkte 514

Einfache Lösung Öffnen Sie die Shell von der Xampp-Steuerungstafel

mysqld --console --skip-grant-tables --skip-external-locking

Öffnen Sie dann erneut eine andere Shell und führen Sie aus

mysqlcheck -r --databases mysql --use-frm

Schließen Sie jetzt beide Shells und starten Sie den Xampp neu.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X