J'ai des tas de problèmes étranges sur Magento CE 1.7.0.2. Pendant les opérations normales, le site produira occasionnellement une page d'erreur Magento (il y a eu une erreur lors du traitement de votre demande ) sur le frontend et le backend. En affichant le rapport associé, je vois le message suivant:
"SQLSTATE[HY000] [2006] MySQL server has gone away"
Parfois, mais plus rarement, le message de rapport se lit comme suit:
Connection reset by peer
J'ai regardé var> log> system.log et l' MySQL has gone away
erreur est accompagnée de ce qui suit:
Warning: PDO::__construct(): MySQL server has gone away in /var/www/html/domain.com/live/lib/Zend/Db/Adapter/Pdo/Abstract.php on line 129
Error while reading greeting packet. PID=1863 in /var/www/html/domain.com/live/lib/Zend/Db/Adapter/Pdo/Abstract.php on line 129
En plus de cela, l'erreur suivante semble se produire sur chaque demande, ainsi que les MySQL has gone away
erreurs:
Warning: include(File.php): failed to open stream: No such file or directory in /var/www/html/domain.com/live/lib/Varien/Autoload.php on line 93
Warning: include(): Failed opening 'File.php' for inclusion
J'ai regardé la plupart des articles que je peux trouver à ce sujet et j'ai bricolé les paramètres de la base de données jusqu'à ce que les vaches rentrent à la maison, mais l'erreur persiste.
Après avoir suivi un autre QnA sur le compilateur, je remarque que la page d'administration Système> Outils> Compilation est complètement vide. Je pense que ce sont toutes des erreurs liées, mais tout aperçu du débogage ou des causes serait très utile.
Je m'excuse si cela est incohérent; Je suis éveillé depuis environ 42 heures, alors veuillez demander des éclaircissements. Je vous remercie.
-- mise à jour --
Ma pile de serveurs pour plus de clarté:
PHP 5.5.4 (PHP-FPM)
Nginx 1.4.2
MySQL 5.5.33
-- mise à jour --
Il me vient à l'esprit (après un peu de sommeil) que je n'ai jamais spécifié - la base de code PHP et la base de données MySQL sont sur des serveurs matériels séparés - très important de savoir si vous allez m'aider !! Je m'excuse.
la source
Réponses:
Cela est principalement dû à l'une des deux raisons ci-dessous
correction: essayez d'augmenter la
wait_timeout
variable dans lemy.cnf/my.ini
fichier de configuration de votre mysqld .correction: augmentez la limite maximale de taille de paquet en augmentant la valeur de
max_allowed_packet
inmy.cnf/my.ini
file.Veuillez archiver les fichiers si vous essayez d'obtenir quelque chose qui prend trop de temps ou qui n'est pas applicable.
la source
max_allowed_packet
à 2G etwait_timout
à 86400, toujours sans aide.Problème résolu! Merci à tous pour l'aide. Il s'agissait d'un problème de pare-feu matériel avec l'hôte Web, même après qu'il ait été désactivé par nous.
Comme confirmé par l' équipe serveur de 1 & 1 , les pare-feu matériels étaient correctement configurés, mais ils interceptaient incorrectement du trafic valide entre le serveur de fichiers et le serveur db environ 25% du temps.
Nous avons plutôt configuré iptables et fermé complètement les pare-feu matériels. Disponibilité à 100% maintenant.
la source
J'ai rencontré le même problème pour Magento 2.1 et mon journal d'erreurs mysql a montré l'erreur suivante plusieurs fois pendant le processus "MySQL a disparu":
...[Warning] File Descriptor 1228 exceeded FD_SETSIZE=1024
Pour résoudre potentiellement ce problème, vérifiez d'abord la
open files
valeur avec$ ulimit -n
, qui dans mon cas était256
.Deuxièmement, ajoutez
table_open_cache = {that ulimit -n value}
sous la[mysqld]
section dans votremy.cnf
.Redémarrez maintenant MySQL et j'espère que vous êtes de retour dans l'action.
Remarque: j'exécute Magento 2.1 localement sur OS X El Capitan avec PHP 7.1 et MySQL 5.7.15 avec Homebrew. Mais je parie que cette solution fonctionnerait aussi sur des configurations plus anciennes ou différentes.
la source
Modifiez le fichier app / etc / local.xml dans votre dossier Magento, en remplaçant l'entrée de l'hôte par «127.0.0.1» au lieu de «localhost».
la source
A rencontré la même erreur lors de la migration d'une grande base de données entre 2 serveurs.
L'ajout temporaire des éléments suivants dans le fichier de configuration mysql (/etc/mysql/my.cnf) sur mon serveur local (de destination) et le redémarrage de mysql (service mysql restart) ont résolu le problème pour moi:
la source