it-swarm.com.de

Allgemeiner Fehler: 2006 Der MySQL-Server ist verschwunden

Dies ist der Fehler, den ich plötzlich bekomme.

Additional uncaught exception thrown while handling exception.

Original
PDOException: SQLSTATE[70100]: Unknown error: 1317 Query execution was interrupted...my query

Additional
PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away...my query

Nach einigen Recherchen klingt es so, als würde ein benutzerdefiniertes Modul, das ich erstellt habe, eine zu große Abfrage versuchen. Eine Lösung, die für viele Menschen zu funktionieren scheint, ist folgende:

  1. Öffne my.ini
  2. Ändern Sie "max_allowed_packet" von "1m" in "16m" (oder größer).
  3. Speichern Sie my.ini und starten Sie MySQL neu

Ich bin jedoch auf einem freigegebenen Server, daher kann ich my.ini nicht bearbeiten. Obwohl mein Provider mir bestätigt hat, dass der Wert auf 1 MB festgelegt ist, wird er nicht erhöht.

Ich habe auch versucht, Folgendes hinzuzufügen: ini_set('mysqli.reconnect', 'on'); zu settings.php. Es hat das Problem nicht gelöst.

Kennt jemand eine andere Lösung oder arbeitet er herum?

Vielen Dank.

8
dbj44

Shared Hosting-Unternehmen geben das Privileg [~ # ~] super [~ # ~] nicht ab. Wenn Sie es haben, können Sie max_allowed_packet einfach auf 512M setzen, indem Sie einfach Folgendes ausführen:

mysql> SET GLOBAL max_allowed_packet = 1024 * 1024 * 512;

Ein Neustart ist nicht erforderlich. Dann können alle eingehenden Verbindungen danach ein 512M Paket haben.

Du kannst das nicht machen:

mysql> SET max_allowed_packet = 1024 * 1024 * 512;

weil du bekommst

ERROR 1621 (HY000): SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value

Die einzige Alternative, die ich mir vorstellen kann, ist, zu Amazon EC2 zu wechseln und dort MySQL zu installieren. Auf diese Weise können Sie my.cnf/my.ini frei bearbeiten und haben das [~ # ~] super [~ # ~] Privileg.

8
RolandoMySQLDBA

Ich habe meinen Provider gebeten, den Wert zu erhöhen, aber das würden sie nicht. Ich kann verstehen, warum, sie sind ein Unternehmen und sie möchten, dass ich 29,99 pro Monat für einen dedizierten Server bezahle, anstatt 4,99 für einen gemeinsam genutzten Server.

Es gibt jedoch eine Lösung : Identifizieren Sie die zu große Abfrage und teilen Sie sie in zwei oder mehr Teile auf. Ich habe meine Problemabfrage in zwei Hälften geteilt: Problem gelöst. Ineffizient - ja - aber es ist besser als meine Website, die überhaupt nicht funktioniert oder den Aufpreis zahlen muss.

0
dbj44

Problem ist, weil max_allowed_packet, Sie setzen es mit größerem Wert.

So beheben Sie dieses Problem (wenn Sie sich in Windows befinden und xamp verwenden, finden Sie die Datei my.ini)
Gehen Sie zu xampp\mysql\bin
Öffnen Sie my.ini
Ändern Sie "max_allowed_packet" von "1m" in "16m".
Speichern Sie my.ini
Starten Sie MySql nun über das XAMPP-Bedienfeld neu.

Diese Lösung haben Sie hier gefunden. http://minorpoint.blogspot.com/2007/09/mysql-server-has-gone-away.html

0
Yusef