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?

5voto

Aammad Ullah Punkte 256

Keine der obigen Lösungen hat für mich funktioniert. Dann habe ich folgendes gemacht:

Ich habe alle Dateien im Verzeichnis C:\xampp\mysql\data\ gelöscht, außer den Ordnern in diesem Verzeichnis. Es hat perfekt funktioniert, aber meine vorherigen Datenbanken funktionieren jetzt nicht mehr. Also mach das oben genannte, wenn es dir nichts ausmacht, dass es alle deine vorherigen Datenbanken in phpmyadmin löscht.

4voto

Sksaif Uddin Punkte 504

Ich hatte mit dem gleichen Problem zu kämpfen und keines der oben genannten Lösungen hat mir geholfen. Ich habe die MySQL-Konfigurationsdatei (my.ini) geöffnet und die Portnummer unter [mysqld] geändert. Standardmäßig läuft MySQL auf Port 3306.

port= 3306

Ich habe es geändert zu ,

port= 8111

Dann als Administrator ausführen. Schließlich hat das bei mir funktioniert.

4voto

  1. Kopieren Sie alle Dateien von xampp/mysql/backup/ und fügen Sie sie dann in /xampp/mysql/data/ ein.
  2. Starten Sie mysql neu.

4voto

DevWL Punkte 14388

Hatte das gleiche Problem.

SCHRITT 1

Backup-Ordner xampp/mysql/data (habe es als `xampp/mysql/_old_data` gespeichert).

Bildbeschreibung hier eingeben

SCHRITT 2

Gehen Sie zu xampp/mysql/data und löschen Sie alle Dateien, aber nicht die Ordner! Mit Datenbanken.

Bildbeschreibung hier eingeben

SCHRITT 3

In diesem Stadium wird Ihre Datenbank nicht funktionieren. Sie müssen zu Ihrem Backup-Ordner `xampp/mysql/_old_data` gehen und die Datei "`ibdata1`" nach `xampp/mysql/data` kopieren.

Danach funktioniert alles wie erwartet, einschließlich phpmyadmin und Konsole.

SCHRITT 4

Wenn dies nicht hilft, können Sie den Ordner xampp/mysql/data löschen und xampp/mysql/_old_data wieder in xampp/mysql/data umbenennen. (RÜCKGÄNGIG MACHEN) und verschiedene Dinge ausprobieren.

4voto

Leo Chashchin Punkte 91

Dies bedeutet, dass bereits eine MySQL-Datenbank auf Port 3306 läuft.

Im XAMPP-Bedienfeld klicken Sie auf die Schaltfläche 'Config' und anschließend auf 'my.ini'. Suchen Sie dann mit Strg-F nach '3306'. Ersetzen Sie jeden '3306', den Sie finden, durch eine andere Portnummer Ihrer Wahl (Sie könnten 3307 oder 3308 wählen - ich habe 2811 gewählt und es hat funktioniert).

Nachdem Sie alle Stellen ersetzt haben, an denen '3306' geschrieben steht, speichern Sie die Datei und klicken Sie erneut auf 'Start' im Bedienfeld.

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