Praktische Aufzeichnung der Handhabung von MySQL-Problemen beim automatischen Herunterfahren

Praktische Aufzeichnung der Handhabung von MySQL-Problemen beim automatischen Herunterfahren

Ich habe vor Kurzem jemandem bei einem Projekt geholfen und die MySQL-Maschine stoppte nach einer Weile immer automatisch. Zuerst dachte ich, es würde unerwartet anhalten, also habe ich nicht aufgepasst und es manuell neu gestartet. Aber nach zwei Tagen hörte es wieder auf.

Später habe ich das MySQL-Protokoll sorgfältig überprüft:

2020-05-27T10:15:12.569342Z 0 [System] [MY-010116] [Server] /usr/libexec/mysqld (mysqld 8.0.17) gestartet als Prozess 19493
2020-05-27T10:15:14.448256Z 0 [System] [MY-010229] [Server] Wiederherstellung nach Absturz wird gestartet...
2020-05-27T10:15:14.475411Z 0 [System] [MY-010232] [Server] Wiederherstellung nach Absturz abgeschlossen.
2020-05-27T10:15:14.691345Z 0 [Warnung] [MY-010068] [Server] CA-Zertifikat ca.pem ist selbstsigniert.
2020-05-27T10:15:15.677386Z 0 [System] [MY-010931] [Server] /usr/libexec/mysqld: bereit für Verbindungen. Version: „8.0.17“ Socket: „/var/lib/mysql/mysql.sock“ Port: 3306 Quellverteilung.
2020-05-27T10:15:15.951210Z 0 [System] [MY-011323] [Server] X-Plugin bereit für Verbindungen. Socket: '/var/lib/mysql/mysqlx.sock' Bindeadresse: '::' Port: 33060
2020-05-27T11:26:19.955004Z 0 [System] [MY-010116] [Server] /usr/libexec/mysqld (mysqld 8.0.17) gestartet als Prozess 19757
2020-05-27T11:26:20.181302Z 0 [FEHLER] [MY-012681] [InnoDB] mmap(137363456 Bytes) fehlgeschlagen; Fehlernummer 12
2020-05-27T11:26:20.181360Z 1 [FEHLER] [MY-012956] [InnoDB] Speicher für den Pufferpool kann nicht zugewiesen werden
2020-05-27T11:26:20.181379Z 1 [FEHLER] [MY-012930] [InnoDB] Plugin-Initialisierung mit Fehler abgebrochen. Allgemeiner Fehler.
2020-05-27T11:26:20.181401Z 1 [FEHLER] [MY-010334] [Server] DD Storage Engine konnte nicht initialisiert werden
2020-05-27T11:26:20.181543Z 0 [FEHLER] [MY-010020] [Server] Initialisierung des Datenwörterbuchs fehlgeschlagen.
2020-05-27T11:26:20.183642Z 0 [FEHLER] [MY-010119] [Server] Abbruch
2020-05-27T11:26:20.184163Z 0 [System] [MY-010910] [Server] /usr/libexec/mysqld: Herunterfahren abgeschlossen (mysqld 8.0.17) Quellverteilung.

Die obige Meldung lautet „Für den Pufferpool kann kein Speicher zugewiesen werden“. Cannot allocate memory for the buffer pool . Ich dachte sofort an unzureichenden Arbeitsspeicher. Diese Maschine hat 1 GB Arbeitsspeicher und führt Nginx und PHP-FPM aus.

Durch die Verwendung von top sah ich, dass mysqld 48 % des Speichers verwendete. Der Speicherverbrauch ist immer noch ziemlich hoch.

Natürlich wäre eine Aufrüstung der Maschinenkonfiguration eine bessere Lösung, aber die Mittel sind schließlich begrenzt. Fügen wir also zunächst einen Swap-Speicherplatz hinzu:

dd wenn=/dev/null von=/swapfile bs=1M Anzahl=2048
mkswap /Austauschdatei
swapon /Austauschdatei
systemctl startet mysqld neu

Oben haben wir der Maschine 2 GB Swap-Speicherplatz hinzugefügt. Starten Sie dann mysqld neu. Ich habe top erneut verwendet und festgestellt, dass der Swap-Speicherplatz nach und nach genutzt wurde.

Nach einem Nickerchen wachte ich auf und stellte fest, dass der mysqld-Dienst nicht automatisch beendet wurde und die Speichernutzung auf 22 % gesunken war. Ich schaute mir das Fehlerprotokoll an und es war leer.

Na, es sieht ja gut aus. Beobachten Sie es einfach noch ein paar Tage und wenn es kein Problem gibt, sollte alles in Ordnung sein 😎😎😎.

Dies ist das Ende dieses Artikels zum Umgang mit dem Problem des automatischen Herunterfahrens von MySQL. Weitere relevante Inhalte zum Umgang mit dem automatischen Herunterfahren von MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Die perfekte Lösung für MySQL automatische Stopp-Plugin FEDERATED ist deaktiviert
  • Lösung zum automatischen Stoppen des MySQL-Dienstes
  • Lösung zum automatischen Neustart von MySQL

<<:  Detaillierte Erklärung dieser Referenz und benutzerdefinierter Eigenschaften in JavaScript

>>:  So implementieren Sie die Ein-Klick-Bereitstellung von NFS unter Linux

Artikel empfehlen

JavaScript implementiert die Verarbeitung großer Datei-Uploads

Beim Hochladen von Dateien, z. B. Videodateien, d...

HTML löst das Problem ungültiger Tabellenbreiteneinstellungen

Wenn Sie den Stil „table-layer:fixed“ für eine Ta...

So schreiben Sie eleganten JS-Code

Inhaltsverzeichnis Variable Verwenden Sie aussage...

Jenkins+Gitlab+Nginx Bereitstellung einer Front-End-Anwendung

Inhaltsverzeichnis Zugehörige Abhängigkeitsinstal...

Detaillierte Erklärung der Rolle des neuen Operators in Js

Vorwort Js ist heutzutage die am häufigsten verwe...

4 Lösungen für MySQL-Import-CSV-Fehler

Dies soll an die 4 Fallstricke erinnern, in die i...

JavaScript Canvas Tetris-Spiel

Tetris ist ein sehr klassisches kleines Spiel, un...

Details und Beispielcode der MySQL-Replikationstabelle

Detaillierte Erklärung der MySQL-Replikationstabe...

Beispielcode für HTML-Layered-Box-Shadow-Effekt

Schauen wir uns zunächst das Bild an: Heute werde...

Probleme und Lösungen für MYSQL5.7.17-Verbindungsfehler unter MAC

Das Problem, dass MYSQL5.7.17 unter MAC keine Ver...