Este es el error que de repente recibo.
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
Después de investigar un poco, parece que un módulo personalizado, que he hecho, está intentando una consulta que es demasiado grande. Una solución que parece funcionar para mucha gente es esta:
- Abra my.ini
- Cambie "max_allowed_packet" de "1m" a "16m" (o más grande)
- Guarde my.ini y reinicie MySQL
Sin embargo, estoy en un servidor compartido, por lo que no puedo editar my.ini, y aunque mi proveedor me ha confirmado que el valor está establecido en 1M, no lo aumentarán.
También intenté agregar esto: ini_set('mysqli.reconnect', 'on');
a settings.php
. No resolvió el problema.
¿Alguien sabe de otra solución, o evitar?
Gracias.
Respuestas:
Las empresas de alojamiento compartido no regalan el privilegio SUPER . Si lo tiene, puede configurar fácilmente max_allowed_packet a 512M simplemente ejecutando esto:
No se requiere reiniciar. Luego, todas las conexiones entrantes pueden tener un paquete de 512M .
No puedes hacer esto:
porque obtienes
La única alternativa que se me ocurre es cambiar a Amazon EC2 e instalar MySQL allí. De esa manera, puede tener rienda suelta para editar my.cnf / my.ini y tener el privilegio SUPER .
fuente
Le pedí a mi proveedor que aumentara el valor, pero no lo hicieron. Puedo entender por qué, son un negocio y quieren que pague 29,99 al mes por un servidor dedicado, en lugar de 4,99 por un servidor compartido.
Sin embargo, hay una solución: identificar la consulta que es demasiado grande y dividirla en dos o más partes. Dividí mi consulta de problema a la mitad: problema resuelto. Ineficiente, sí, pero es mejor que mi sitio no funcione en absoluto o tenga que pagar el extra.
fuente
TEXT/BLOB fields
código de aparejo jerry.El problema es porque
max_allowed_packet
lo configuras con mayor valor.Cómo solucionar este problema (si está en Windows y usa xamp, busque el archivo my.ini)
Vaya a xampp \ mysql \ bin
Abra my.ini
Cambie "max_allowed_packet" de "1m" a "16m"
Guarde my.ini
Ahora reinicie MySql a través del panel de control XAMPP.
Encontré esta solución aquí. http://minorpoint.blogspot.com/2007/09/mysql-server-has-gone-away.html
fuente