C'est l'erreur que je reçois soudainement.
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
Après avoir fait quelques recherches, cela ressemble à un module personnalisé, que j'ai fait, qui tente une requête trop volumineuse. Une solution qui semble fonctionner pour beaucoup de gens est la suivante:
- Ouvrez my.ini
- Changer "max_allowed_packet" de "1m" en "16m" (ou plus)
- Enregistrez my.ini et redémarrez MySQL
Cependant, je suis sur un serveur partagé, donc je ne peux pas modifier my.ini, et bien que mon fournisseur m'ait confirmé que la valeur est définie sur 1M, il ne l'augmentera pas.
J'ai également essayé d'ajouter ceci: ini_set('mysqli.reconnect', 'on');
à settings.php
. Cela n'a pas résolu le problème.
Quelqu'un connaît-il une autre solution ou contourne-t-il?
Merci.
Réponses:
Les sociétés d'hébergement mutualisé ne donnent pas le privilège SUPER . Si vous l'avez, vous pouvez facilement définir max_allowed_packet sur 512M en exécutant simplement ceci:
Aucun redémarrage n'est requis. Ensuite, toutes les connexions entrantes par la suite , peuvent avoir un 512M paquet .
Tu ne peux pas faire ça:
parce que vous obtenez
La seule alternative à laquelle je peux penser est de passer à Amazon EC2 et d'y installer MySQL. De cette façon, vous pouvez avoir toute latitude pour modifier my.cnf / my.ini et avoir le privilège SUPER .
la source
J'ai demandé à mon fournisseur d'augmenter la valeur, mais ils ne l'ont pas fait. Je peux comprendre pourquoi, c'est une entreprise et ils veulent que je paie 29,99 par mois pour un serveur dédié, plutôt que 4,99 pour un serveur partagé.
Cependant, il existe une solution: identifier la requête qui est trop volumineuse et la diviser en deux ou plusieurs parties. J'ai divisé mon problème en deux: problème résolu. Inefficace - oui - mais c'est mieux que mon site ne fonctionne pas du tout ou doive payer le supplément.
la source
TEXT/BLOB fields
code de gréement à la place.Le problème est que
max_allowed_packet
vous le définissez avec une valeur plus élevée.Comment résoudre ce problème (si vous êtes dans Windows et que vous utilisez xamp, trouvez le fichier my.ini)
Allez dans xampp \ mysql \ bin
Ouvrez my.ini
Changez "max_allowed_packet" de "1m" en "16m"
Enregistrez my.ini
Maintenant redémarrez MySql via le panneau de configuration XAMPP.
J'ai trouvé cette solution ici. http://minorpoint.blogspot.com/2007/09/mysql-server-has-gone-away.html
la source