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
|