Perfekte Lösung für das Problem, dass MySQL sofort nach dem Start heruntergefahren wird (verursacht durch eine Beschädigung der ibdata1-Datei)

Perfekte Lösung für das Problem, dass MySQL sofort nach dem Start heruntergefahren wird (verursacht durch eine Beschädigung der ibdata1-Datei)

Das MySQL auf einem Server im Computerraum lief eine Weile, und plötzlich trat ein sehr merkwürdiges Phänomen auf: Es konnte nach einem Neustart nicht wiederhergestellt werden! Der genaue Sachverhalt ist: Nach dem Start von MySQL wird es sofort wieder geschlossen.

Überprüfen Sie das MySQL-Fehlerprotokoll wie folgt:

160920 22:41:41 mysqld_safe Starte mysqld-Daemon mit Datenbanken von /home/MysqlData/
20.09.2016 22:41:41 0 [Hinweis] /Data/app/mysql5.6.25/bin/mysqld (mysqld 5.6.25-log) als Prozess 32372 gestartet ...
20.09.2016 22:41:42 32372 [Hinweis] Plugin „FEDERATED“ ist deaktiviert.
2016-09-20 22:41:42 32372 [Warnung] Option „innodb-write-io-threads“: vorzeichenloser Wert 1000 auf 64 angepasst
2016-09-20 22:41:42 32372 [Warnung] Option „innodb-read-io-threads“: vorzeichenloser Wert 1000 auf 64 angepasst
2016-09-20 22:41:42 32372 [Anmerkung] InnoDB: Verwenden von Atomen zum Referenzieren der Anzahl von Pufferpoolseiten
2016-09-20 22:41:42 32372 [Hinweis] InnoDB: Der InnoDB-Speicherheap ist deaktiviert
2016-09-20 22:41:42 32372 [Anmerkung] InnoDB: Mutexes und rw_locks verwenden atomare Builtins von GCC
2016-09-20 22:41:42 32372 [Hinweis] InnoDB: Speicherbarriere wird nicht verwendet
2016-09-20 22:41:42 32372 [Hinweis] InnoDB: Komprimierte Tabellen verwenden zlib 1.2.3
2016-09-20 22:41:42 32372 [Hinweis] InnoDB: Verwenden von CPU-CRC32-Anweisungen
2016-09-20 22:41:42 32372 [Hinweis] InnoDB: Pufferpool wird initialisiert, Größe = 1,0 G
2016-09-20 22:41:42 32372 [Anmerkung] InnoDB: Initialisierung des Pufferpools abgeschlossen
20.09.2016 22:41:42 32372 [Hinweis] InnoDB: Das am meisten unterstützte Dateiformat ist Barracuda.
2016-09-20 22:41:42 32372 [Hinweis] InnoDB: Der Protokollscan hat den Prüfpunkt LSN 20293587957 überschritten
20.09.2016 22:41:42 32372 [Hinweis] InnoDB: Datenbank wurde nicht normal heruntergefahren!
20.09.2016 22:41:42 32372 [Hinweis] InnoDB: Wiederherstellung nach Absturz wird gestartet.
20.09.2016 22:41:42 32372 [Hinweis] InnoDB: Tablespace-Informationen werden aus den .ibd-Dateien gelesen ...
2016-09-20 22:41:42 32372 [Anmerkung] InnoDB: Wiederherstellen möglicher halbgeschriebener Datenseiten
20.09.2016 22:41:42 32372 [Anmerkung] InnoDB: aus dem Doublewrite-Puffer ...
InnoDB: Wiederherstellung wird durchgeführt: Bis zur Protokollsequenznummer 20293596130 gescannt
20.09.2016 22:41:42 32372 [Hinweis] InnoDB: Starten eines Batches zum Anwenden von Protokolldatensätzen auf die Datenbank ...
InnoDB: Fortschritt in Prozent: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Batch anwenden abgeschlossen
InnoDB: Letzte MySQL-Binlog-Dateiposition 0 136254, Dateiname mysql-bin.000013
20.09.2016 22:41:43 32372 [Hinweis] InnoDB: 128 Rollback-Segment(e) sind aktiv.
2016-09-20 22:41:43 32372 [Hinweis] InnoDB: Warte auf den Beginn der Bereinigung
2016-09-20 22:41:43 7f77a9edd700 InnoDB: Assertionsfehler im Thread 140151928772352 in Datei trx0purge.cc, Zeile 699
InnoDB: Fehlgeschlagene Behauptung: purge_sys->iter.trx_no <= purge_sys->rseg->last_trx_no
InnoDB: Wir erzeugen absichtlich eine Speicherfalle.
InnoDB: Senden Sie einen detaillierten Fehlerbericht an http://bugs.mysql.com.
InnoDB: Wenn Sie wiederholt Assertionsfehler oder Abstürze bekommen, selbst
InnoDB: Unmittelbar nach dem Start von mysqld kann es
InnoDB: Beschädigung im InnoDB-Tablespace. Weitere Informationen finden Sie unter
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: zum Erzwingen einer Wiederherstellung.
02:41:43 UTC – mysqld hat Signal 6 erhalten;
Dies könnte daran liegen, dass Sie auf einen Fehler gestoßen sind. Es ist auch möglich, dass diese Binärdatei
oder eine der Bibliotheken, mit denen es verknüpft war, ist beschädigt, falsch erstellt,
oder falsch konfiguriert. Dieser Fehler kann auch durch eine Fehlfunktion der Hardware verursacht werden.
Wir werden unser Bestes tun, um einige Informationen zusammenzukratzen, die hoffentlich helfen werden
das Problem zu diagnostizieren, aber da wir bereits abgestürzt sind,
irgendetwas stimmt definitiv nicht und dies kann fehlschlagen.

Nach der Analyse der Protokolle stellten wir fest, dass die Datenbank nicht neu gestartet werden konnte, da die Datei ibdata1 beschädigt war und nach dem Neustart nicht normal wiederhergestellt werden konnte.

Lösung:

Sie müssen den Wiederherstellungsschritt überspringen , die Datei my.cnf ändern und Folgendes zu [mysqld] in my.cnf hinzufügen:

innodb_force_recovery = 6
innodb_purge_threads = 1

erklären:

innodb_force_recovery kann auf 1-6 eingestellt werden, wobei höhere Zahlen die Auswirkungen aller vorherigen Zahlen einschließen.

Die Bedeutung der einzelnen Zahlen:

1-----(SRVFORCEIGNORECORRUPT): Ignorieren Sie die erkannten beschädigten Seiten.
2-----(SRVFORCENOBACKGROUND): Verhindert die Ausführung des Hauptthreads. Wenn der Hauptthread einen vollständigen Bereinigungsvorgang durchführen muss, führt dies zu einem Absturz.
3-----(SRVFORCENOTRXUNDO): Es wird kein Transaktions-Rollback durchgeführt.
4-----(SRVFORCENOIBUFMERGE): Führen Sie keinen Zusammenführungsvorgang am Einfügepuffer durch.
5-----(SRVFORCENOUNDOLOGSCAN): Ohne Überprüfung des Redo-Protokolls behandelt die InnoDB-Speicher-Engine nicht festgeschriebene Transaktionen als festgeschrieben.
6-----(SRVFORCENOLOG_REDO): Führen Sie den Rollforward-Vorgang nicht durch.

Starten Sie MySQL erneut und alles wird gut ~

Wenn es immer noch nicht gestartet werden kann, müssen Sie Dateien wie ibdata1, ib_logfile* im Datenverzeichnis datafile löschen.

Nach dem Start exportieren Sie die MySQL-Datenbank und stellen sie wieder her.

Der obige Artikel löst perfekt das Problem, dass MySQL unmittelbar nach dem Start geschlossen wird (verursacht durch eine Beschädigung der ibdata1-Datei). Dies ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • mysql-8.0.15-winx64 verwendet das Zip-Paket zur Installation und der Dienst wird sofort nach dem Start heruntergefahren
  • MySQL deaktiviert die Überprüfung der Kennwortstärke
  • So deaktivieren Sie die Überprüfung auf Fremdschlüsseleinschränkungen in untergeordneten MySQL-Tabellen
  • So öffnen und schließen Sie die MySQL-Datenbank mit der objektorientierten Methode mysqli in PHP
  • Tutorial zum sicheren Herunterfahren des MySQL-Dienstes
  • So deaktivieren Sie das MySQL-Protokoll, um Speicherplatz unter lnmp zu schützen
  • Verwenden der Stapelverarbeitung zum Starten und Herunterfahren von MySQL unter Windows
  • So öffnen, schließen und zeigen Sie Funktionsfunktionen einer MySQL-Datenbank an
  • Detaillierte Erläuterung des MySQL-Herunterfahrvorgangs und Methoden zum sicheren Herunterfahren von MySQL
  • Detaillierte Analyse der Definition, Verwendung und Schließung von Mysql-Cursorn
  • Starten und Herunterfahren des MySQL-Servers
  • So fahren Sie eine MySQL-Instanz sicher herunter

<<:  Beispiel einer Nginx-Standortübereinstimmungsregel

>>:  Basierend auf Vue-Simple-Uploader, kapselt die globale Upload-Plug-In-Funktion des Dateisegment-Uploads, des sofortigen Uploads und der Breakpoint-Fortsetzung

Artikel empfehlen

Spezifische Verwendung globaler Variablen von node.js

Globales Objekt Alle Module können aufgerufen wer...

Verwenden Sie xshell, um eine Verbindung zum Linux-Server herzustellen

Vorteile der Verwendung von xshell zur Verbindung...

Detaillierte Erläuterung des Beispielcodes für das elastische CSS3 Flex-Layout

1. Grundlegende Konzepte //Jeder Container kann a...

Mehrere Möglichkeiten zum Verbinden von Tabellen in MySQL

Die Verbindungsmethode in der MySQL-Tabelle ist e...

Detaillierte Analyse von MySQL-Datenbanktransaktionen und -Sperren

Inhaltsverzeichnis 1. Grundlegende Konzepte SÄURE...

Der eigentliche Prozess der Implementierung des Zahlenrätsels im WeChat-Applet

Inhaltsverzeichnis Funktionseinführung Rendern 1....

Detaillierte Erklärung des Vue2 Cube-UI-Zeitwählers

Inhaltsverzeichnis Vorwort 1. Anspruch und Wirkun...

Docker-Lösung zum Anmelden ohne Root-Rechte

Wenn Sie den Docker-Befehl zum ersten Mal verwend...

WeChat-Applet-Canvas implementiert Signaturfunktion

Im WeChat-Applet-Projekt umfasst das Entwicklungs...

Vue kapselt die öffentliche Funktionsmethode zum Exportieren von Excel-Daten

vue+element UI kapselt eine öffentliche Funktion ...

Anleitung zum Zurücksetzen des MySQL/MariaDB-Root-Passworts

Vorwort Vergessene Passwörter sind ein Problem, d...