Heim > Datenbank > MySQL-Tutorial > Wie behebt man den „Allgemeinen Fehler: 2006 MySQL Server ist nicht mehr verfügbar' bei Massenvorgängen?

Wie behebt man den „Allgemeinen Fehler: 2006 MySQL Server ist nicht mehr verfügbar' bei Massenvorgängen?

Linda Hamilton
Freigeben: 2024-10-30 22:20:30
Original
238 Leute haben es durchsucht

How to Fix the

Behebung des Problems „Allgemeiner Fehler: 2006 MySQL Server ist nicht mehr verfügbar“

Bei der Durchführung von Massenvorgängen, wie dem Einfügen von Hunderten von Datensätzen in eine MySQL-Datenbank, kann es sein, dass Sie Es tritt der folgende Fehler auf:

[PDOException] SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
Nach dem Login kopieren

Dieser Fehler tritt normalerweise aufgrund eines Zeitüberschreitungsproblems auf, bei dem der MySQL-Server Ihre Verbindung nach einer festgelegten Zeitspanne der Inaktivität trennt. Um dieses Problem zu beheben, konzentrieren Sie sich auf die Anpassung von zwei Haupteinstellungen:

1. wait_timeout

Die Einstellung „wait_timeout“ bestimmt die Dauer (in Sekunden), die MySQL wartet, bevor eine inaktive Verbindung beendet wird. Standardmäßig ist dieser Wert in Shared-Hosting-Umgebungen auf relativ niedrige 30 Sekunden eingestellt.

Um den wait_timeout zu erhöhen, geben Sie zu Beginn Ihres Vorgangs die folgende Abfrage aus:

SET session wait_timeout=28800;
Nach dem Login kopieren

This Der Befehl setzt den wait_timeout auf 28800 Sekunden, was ungefähr 8 Stunden entspricht.

2. Interactive_timeout (Optional)

In einigen Fällen müssen Sie möglicherweise auch die Einstellung „Interactive_timeout“ anpassen. Diese Einstellung gibt die Anzahl der Sekunden an, bevor MySQL eine interaktive Verbindung beendet.

Um Interactive_Timeout zu ändern, führen Sie die folgende Abfrage aus, nachdem Sie Wait_Timeout angepasst haben:

SET session interactive_timeout=28800;
Nach dem Login kopieren

Überprüfung

Zur Bestätigung Um sicherzustellen, dass die Einstellungen erfolgreich geändert wurden, können Sie die folgende Abfrage ausführen, bevor und nachdem Sie die Änderungen vorgenommen haben:

<code class="php">$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);</code>
Nach dem Login kopieren

Vorsichtsmaßnahmen

Eine Erhöhung der Timeout-Einstellungen kann zwar das unmittelbare Problem beheben, ist aber wichtig Beachten Sie Folgendes:

  • Das Festlegen von wait_timeout auf einen sehr hohen Wert (z. B. 8 Stunden) kann zu übermäßigem Warten auf inaktive Verbindungen führen.
  • Es wird im Allgemeinen empfohlen, wait_timeout innerhalb von a zu halten angemessener Bereich, z. B. 300 Sekunden.

Das obige ist der detaillierte Inhalt vonWie behebt man den „Allgemeinen Fehler: 2006 MySQL Server ist nicht mehr verfügbar' bei Massenvorgängen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage