Schwerwiegender Fehler abrufen: SQLSTATE [HY000]: Allgemeiner Fehler: 2006 Der MySQL-Server ist verschwunden

7

Meine Magento-Anwendung funktionierte lange Zeit einwandfrei. Aber plötzlich wurde der folgende Fehler angezeigt.

Fatal error: 
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /home/serverDir/public_html/lib/Zend/Db/Statement/Pdo.php:228 
Stack trace: 
#0 /home/serverDir/public_html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) 
#1 /home/serverDir/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array) 
#2 /home/serverDir/public_html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array) 
#3 /home/serverDir/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) 
#4 /home/serverDir/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('insert into csv...', Array) 
#5 /home/serverDir/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('insert into csv...', Array) 
#6 /home/serverDir/public_html/app/code/local/namespace/module/Model/Observer.php(638): Varien_Db_Adapter_Pdo_Mysql->query('inser in /home/serverDir/public_html/lib/Zend/Db/Statement/Pdo.php on line 234

Ich habe alles über das Internet gesucht, konnte aber keine Lösung finden.

Bitte leiten Sie mich, warum plötzlich dieser schwerwiegende Fehler angezeigt wurde.

Harish Kumar
quelle

Antworten:

12

Die übliche Ursache MySQL server has gone awayist, dass Timeout-Fehler auftreten und max_allowed_packet zu niedrig eingestellt ist. Dies sind Einstellungen, die von Ihrem Hosting-Anbieter an der Datei my.cnf Ihres Systems vorgenommen werden müssen.

MySQL Server hat Ursachen von MySQL.com entfernt

Die Verbindung zu Ihrem MySQL-Server läuft ab, weil die Ausführung eines PHP-Skripts zu lange dauert, die Server überlastet sind, erbärmlich große Anforderungen vorliegen oder MySQL falsch konfiguriert ist

my.cnf Einstellungen, die helfen könnten ...

max_allowed_packet = 16M
wait_timeout = 1800 
connect_timeout = 120

Sie müssen Ihren MySQL-Server neu starten, damit diese Einstellungen geladen werden können

Versuchen Sie, max_allowed_packet schrittweise zu erhöhen. Möglicherweise benötigen Sie 24M-32M.

Wenn Sie Shared Hosting verwenden, ist dies ein guter Indikator dafür, dass Ihrem Shared Host die Ressourcen ausgehen und Magento im Laufe der Zeit aufgrund des Datenbankwachstums die Shared Hosting-Funktionen zum Ausführen überschritten hat.

Fiasko-Labore
quelle
3

Sie müssen das Limit max_allowed_packetIhres MySQL erhöhen, um 30 Millionen oder so etwas zu sagen.

In meiner Linux-Installation befindet sich dies in der /etc/mysql/my.cnfDatei.

Nasir Perwaiz
quelle
Danke, ist es möglich, max_allowed_packet in der PHP-Datei zu setzen.
Harish Kumar
Ja, Sie können SQL SET GLOBAL max_allowed_packet = ... ausgeben, um den Wert von max_allowed_packet zu ändern. Da es sich jedoch um eine globale Variable handelt, müssen Sie die Verbindung erneut herstellen, damit die Änderung wirksam wird, da sich das Ändern globaler Systemvariablen derzeit nicht auswirkt offene Verbindungen.
Nasir Perwaiz
nicht gearbeitet Bruder
Harish Kumar
1

Versuchen Sie, Indizes in Magento unter System> Indexverwaltung zu aktualisieren. Ich hatte das gleiche Problem und das Aktualisieren von Indizes hat geholfen.

Alan
quelle