La guía o código que encontrarás en este artículo es la resolución más fácil y efectiva que hallamos a tu duda o dilema.
Solución:
9 de cada 10 veces este error es causado por un número insuficientemente grande max_allowed_packet
configuración en el archivo my.cnf de su servidor MySQL.
Según mi experiencia, el estándar predeterminado para MAMP es 1M, que generalmente no es suficiente para Drupal (especialmente considerando el tamaño de algunas de las cadenas de caché que genera).
Intente aumentar esa configuración gradualmente para ver si el error desaparece. Estoy seguro de que una búsqueda rápida en Google le dirá cómo hacerlo en MAMP.
Este error de MySQL/MariaDB:
Error: 2006 (
CR_SERVER_GONE_ERROR
) – El servidor MySQL se ha ido
significa básicamente que el cliente no pudo enviar una pregunta al servidor.
Esto podría suceder ya sea por una falla temporal, una consulta SQL demasiado grande o no válida, una configuración incorrecta de su servidor o una limitación de su proveedor de alojamiento.
En general, este error puede ser el resultado de varias cosas, tales como:
-
una consulta al servidor es incorrecta o demasiado grande,
Solución: Aumento
max_allowed_packet
variable.Nota: asegúrese de que la variable esté debajo
[mysqld]
sección, no[mysql]
.Nota: No olvide reiniciar el servidor MySQL/MariaDB.
-
Obtuvo un tiempo de espera de la conexión TCP/IP en el lado del cliente.
Solución: Aumento
wait_timeout
variable. -
Intentó ejecutar una consulta después de que se cerró la conexión con el servidor.
Solución: Se debe corregir un error de lógica en la aplicación.
-
Las búsquedas de nombre de host fallaron (por ejemplo, problema del servidor DNS) o el servidor se inició con
--skip-networking
opción.Otra posibilidad es que su firewall bloquee el puerto MySQL (por ejemplo, 3306 por defecto).
-
El subproceso en ejecución se eliminó, así que vuelva a intentarlo.
-
Encontró un error en el que el servidor murió mientras ejecutaba la consulta.
-
Un cliente que se ejecuta en un host diferente no tiene los privilegios necesarios para conectarse.
-
Y muchos más, así que obtenga más información en: B.5.2.9 El servidor MySQL se ha ido.
Para obtener más detalles, consulte su MySQL o los registros del sistema (por ejemplo, /var/log/messages
).
Para depurar el servidor o cliente MySQL, verifique: 26.5 Depuración y portabilidad de MySQL.
En caso de que esté intentando importar la base de datos desde el archivo usando drush
o mysql
comando, puede:
-
Agregue una opción de fuerza (
-f
) pormysql
para continuar y ejecutar el resto de las consultas.Esto es útil si la base de datos tiene algunas consultas grandes relacionadas con el caché que son grandes, pero no relevantes de todos modos.
Utilizando
drush
, tratar:cat foo.sql | $(drush sqlconnect) -f
-
Intenta aplicar
--max-allowed-packet
opción paramysql
con valores más pequeños. -
Aumento
max_allowed_packet
ywait_timeout
en la configuración de su servidor (por ejemplo,~/.my.cnf
). -
Volcar la base de datos original nuevamente usando
--skip-extended-insert
opción para desglosar las consultas grandes. A continuación, importe el archivo de nuevo.
Ver también: ERROR 2006 (HY000): el servidor MySQL se ha ido
La respuesta que da @Clive normalmente es el caso, pero puede haber una causa adicional, especialmente con formularios de adición de nodos.
Los formularios de adición de nodos suelen ser grandes y procesarlos puede consumir mucha memoria (especialmente si hay algún procesamiento de imágenes durante el guardado, como con los módulos de recorte). Si el servidor se queda sin memoria, el proceso mysqld puede ser cancelado, lo que resulta en el mismo mensaje de “desaparecido”.
La pista es buscar en los registros del servidor. En una máquina CentOS, puede ver la siguiente entrada en /var/log/messages
1 de enero 00:00:00 kernel del nombre del servidor: sin memoria: matar el proceso XXXX (mysqld) puntuar XXX o sacrificar al niño
1 de enero 00:00:00 kernel de nombre de servidor: Proceso eliminado XXXX, UID XX, (mysqld) total-vm:XXXkB, anon-rss:XXXkB, file-rss:XXkB
La solución aquí es agregar más RAM o agregar/aumentar el intercambio.
Recuerda que tienes concesión de esclarecer si diste con el resultado.