Tengo muchos problemas extraños en Magento CE 1.7.0.2. Durante las operaciones normales, el sitio ocasionalmente producirá una página de error de Magento (se ha producido un error al procesar su solicitud ) tanto en el front-end como en el back-end. Al ver el informe asociado, veo el siguiente mensaje:
"SQLSTATE[HY000] [2006] MySQL server has gone away"
A veces, pero más raramente, el mensaje del informe leerá:
Connection reset by peer
He mirado el var> log> system.log y el MySQL has gone away
error va acompañado de lo siguiente:
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
Además de esto, el siguiente error parece estar ocurriendo en cada solicitud, así como los MySQL has gone away
errores:
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
He revisado la mayoría de los artículos que puedo encontrar sobre esto y he modificado los parámetros de la base de datos hasta que las vacas llegaron a casa, pero el error persiste.
Después de seguir otra QnA sobre el compilador, noto que la página de administración Sistema> Herramientas> Compilación está completamente en blanco. Creo que todos estos son errores relacionados, pero cualquier idea sobre la depuración o las causas sería muy útil.
Pido disculpas si esto es incoherente; Estuve despierto unas 42 horas, así que solicite cualquier aclaración. Gracias.
- actualización -
Mi pila de servidores para mayor claridad:
PHP 5.5.4 (PHP-FPM)
Nginx 1.4.2
MySQL 5.5.33
- actualización -
Se me ocurre (después de dormir un poco) que nunca especifiqué: la base de código PHP y la base de datos MySQL están en servidores de hardware separados, ¡es muy importante saber si me ayudarán! Pido disculpas.
fuente
Respuestas:
Esto se debe principalmente a cualquiera de las dos razones siguientes
corrección: intente aumentar la
wait_timeout
variable en elmy.cnf/my.ini
archivo de configuración de mysqld .Solución: aumente el límite máximo de tamaño de paquete aumentando el valor de
max_allowed_packet
inmy.cnf/my.ini
file.Verifique los archivos si está intentando obtener algo que está tardando demasiado o que no puede aplicar.
fuente
max_allowed_packet
2G ywait_timout
86400, todavía no ayuda.¡Problema resuelto! Gracias a todos por la ayuda. Este fue un problema de firewall de hardware con el servidor web, incluso después de que los desactivamos.
Según lo confirmado por el equipo del servidor de 1 & 1 , los cortafuegos de hardware se configuraron correctamente, pero estaban interceptando incorrectamente el tráfico válido entre el servidor de archivos y el servidor db aproximadamente el 25% del tiempo.
En su lugar, configuramos iptables y apagamos completamente los firewalls de hardware. 100% de disponibilidad ahora.
fuente
Experimenté el mismo problema para Magento 2.1 y mi registro de errores de mysql mostró el siguiente error varias veces durante el proceso "MySQL se ha ido":
...[Warning] File Descriptor 1228 exceeded FD_SETSIZE=1024
Para resolver potencialmente este problema, primero verifique el
open files
valor con$ ulimit -n
, que en mi caso fue256
.En segundo lugar, agregue
table_open_cache = {that ulimit -n value}
debajo de la[mysqld]
sección en sumy.cnf
.Ahora reinicie MySQL y esperemos que vuelva a la acción.
Nota: estoy ejecutando Magento 2.1 localmente en OS X El Capitan con PHP 7.1 y MySQL 5.7.15 build con Homebrew. Pero apuesto a que esta solución también funcionaría en configuraciones anteriores o diferentes.
fuente
Edite el archivo app / etc / local.xml en su carpeta Magento, reemplazando la entrada para que el host sea '127.0.0.1' en lugar de 'localhost'.
fuente
Experimentó el mismo error al migrar una gran base de datos entre 2 servidores.
Agregar temporalmente lo siguiente en el archivo de configuración de mysql (/etc/mysql/my.cnf) en mi servidor local (destino) y reiniciar mysql (reinicio del servicio mysql) me solucionó el problema:
fuente