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:
- Öffne my.ini
- Ändern Sie "max_allowed_packet" von "1m" in "16m" (oder größer).
- 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.
Antworten:
Shared Hosting-Unternehmen geben das SUPER- Privileg nicht weiter. Wenn Sie es haben, können Sie max_allowed_packet einfach auf 512M setzen, indem Sie einfach Folgendes ausführen :
Ein Neustart ist nicht erforderlich. Dann können alle eingehenden Verbindungen danach ein 512M- Paket haben .
Du kannst das nicht machen:
weil du bekommst
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.
quelle
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 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.
quelle
TEXT/BLOB fields
stattdessen Jerry Rigging-Code zu komprimieren .Das Problem ist
max_allowed_packet
, dass Sie es mit einem größeren Wert einstellen.So beheben Sie dieses Problem (wenn Sie sich in Windows befinden und xamp verwenden, suchen 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
nun neu MySQL über das XAMPP-Bedienfeld.
Diese Lösung haben Sie hier gefunden. http://minorpoint.blogspot.com/2007/09/mysql-server-has-gone-away.html
quelle