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

So lösen Sie das Problem, das Root-Passwort von Mysql auf dem Mac zu vergessen

Ich habe MySQL auf meinem Computer längere Zeit n...

Implementierung interaktiver Daten zwischen QT und Javascript

1. Daten fließen von QT zu JS 1. QT ruft die JS-F...

Vollständiges HTML des Upload-Formulars mit Bildvorschau

Das Upload-Formular mit Bildvorschaufunktion, der...

Verwendung des Linux-Lesebefehls

1. Befehlseinführung Der Lesebefehl ist ein integ...

Ein Problem mit der Bereitstellung von MySQL 5.5

MySQL-Bereitstellung Derzeit stellt das Unternehm...

Installations- und Konfigurationsmethode des Vue-Route-Routing-Managements

einführen Vue Router ist der offizielle Routing-M...

Implementierung der MySQL-Benutzerrechteverwaltung

1. Einführung in MySQL-Berechtigungen Es gibt 4 T...

WeChat-Applet implementiert Sortierfunktion basierend auf Datum und Uhrzeit

Ich habe vor kurzem ein kleines Programmierprojek...

Vue3.0 Adaptiver Betrieb von Computern mit unterschiedlichen Auflösungen

Zuerst müssen wir einige Abhängigkeiten installie...

Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix

Inhaltsverzeichnis Zabbix überwacht Nginx Zabbix ...

Ubuntu-Installation Matlab2020b, ausführliches Tutorial und Ressourcen

Inhaltsverzeichnis 1. Ressourcendateien 2. Instal...