Recientemente comencé a recibir un error cada vez que intento agregar un contenido sin importar el tipo. Este es el error que aparece en el navegador:
Excepción adicional no capturada lanzada mientras se maneja la excepción.
PDOException original: SQLSTATE [HY000]: Error general: el servidor MySQL 2006 se ha ido: SELECCIONE EL CONTEO (cid) DESDE {comentario} DONDE estado =: estado; Matriz ([: estado] => 0) en comment_count_unpublished () (línea 313 de /Applications/MAMP/htdocs/modules/comment/comment.module).
Adicional
PDOException: SQLSTATE [HY000]: Error general: el servidor MySQL 2006 ha desaparecido: INSERT INTO {watchdog} (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (: db_insert_placeholder_0,: db_insert_placeholder_0,: db_insert_placeholder_1 ,: db_insert_placeholder_2,: db_insert_placeholder_3,: db_insert_placeholder_4,: db_insert_placeholder_5,: db_insert_placeholder_6,: db_insert_placeholder_7,: db_insert_placeholder_8,: db_insert_placeholder_9); Matriz ([: db_insert_placeholder_0] => 1 [: db_insert_placeholder_1] => php [: db_insert_placeholder_2] =>% type:! Message en% function (line% line of% file). [: Db_insert_placeholder_3] => a: 6: { s: 5: "% type"; s: 12: "PDOException"; s: 8: "! message"; s: 154: "SQLSTATE [HY000]: Error general: 2006 MySQL server se ha ido: SELECCIONE EL CONTEO (cid) DESDE {comentario} DONDE estado =: estado; Matriz ([: estado] = & gt; 0) "; s: 9:"% function "; s: 27:" comment_count_unpublished () "; s: 5:"% file "; s: 56:" / Aplicaciones / MAMP /htdocs/modules/comment/comment.module";s:5:"%line";i:313;s:14:"severity_level";i:3;} [: db_insert_placeholder_4] => 3 [: db_insert_placeholder_5] = > [: db_insert_placeholder_6] =>http: // localhost: 8888 /? q = nodo% 2Fadd% 2Farcade-project & amp ; [: db_insert_placeholder_7] => http: // localhost: 8888 / [: db_insert_placeholder_8] => 127.0.0.1 [: db_insert_placeholder_9] => 1338336955) en dblog_watchdog () (línea 154 de / Aplicaciones / MAMP / htdocs / modules / dblog / dblog.module).
También recibo el siguiente error en mi archivo de error php:
Error fatal de PHP: excepción no detectada 'PDOException' con el mensaje 'SQLSTATE [HY000]: error general: el servidor MySQL 2006 se ha ido' en /Applications/MAMP/htdocs/includes/database/database.inc:2136
Seguimiento de pila: 0 /Applications/MAMP/htdocs/includes/database/database.inc(2136): PDOStatement-> execute (Array)
1 /Applications/MAMP/htdocs/includes/database/database.inc(664): DatabaseStatementBase- > execute (Array, Array)
2 /Applications/MAMP/htdocs/includes/database/database.inc(2315): DatabaseConnection-> query ('SELECT expire, ...', Array, Array)
3 / Applications / MAMP / htdocs / includes / lock.inc (167): db_query ('SELECT expire, ...', Array)
4 /Applications/MAMP/htdocs/includes/lock.inc(146): lock_may_be_available ('theme_registry: ...' )
5 /Aplicaciones/MAMP/htdocs/includes/theme.inc(447): lock_acquire ('theme_registry: ...')
6 /Applications/MAMP/htdocs/includes/bootstrap.inc(427): ThemeRegistry-> set ( Formación)
7 [función interna]: DrupalCacheArray -> __ destruct ()
8 {main} arrojado en /Applications/MAMP/htdocs/includes/database/database.inc en la línea 2136
Tengo algunos problemas para descifrar estos mensajes de error. ¿Alguien podría ayudarme a entender lo que está pasando aquí?
Este error de MySQL / MariaDB:
significa básicamente que el cliente no pudo enviar una pregunta al servidor .
Esto podría ocurrir ya sea por fallas temporales, consultas SQL demasiado grandes o inválidas, configuración incorrecta de su servidor o limitación de su proveedor de hosting.
En general, este error podría ser el resultado de varias cosas, como:
una consulta al servidor es incorrecta o demasiado grande,
Solución: aumentar la
max_allowed_packet
variable .Nota: Asegúrese de que la variable esté debajo de la
[mysqld]
sección, no[mysql]
.Nota: No olvide reiniciar el servidor MySQL / MariaDB.
Se agotó el tiempo de espera de la conexión TCP / IP en el lado del cliente.
Solución: aumentar la
wait_timeout
variable .Intentó ejecutar una consulta después de que se cerró la conexión al servidor.
Solución: Se debe corregir un error lógico en la aplicación.
Las búsquedas de nombres de host fallaron (p. Ej., Problema del servidor DNS) o el servidor se inició con la
--skip-networking
opciónOtra posibilidad es que su firewall bloquee el puerto MySQL (por ejemplo, 3306 por defecto).
El subproceso en ejecución se ha eliminado, así que vuelva a intentarlo.
Ha encontrado 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 aprenda más 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 del archivo usando
drush
omysql
comando, puede:Agregue una opción de forzar (
-f
) paramysql
continuar y ejecutar el resto de las consultas.Esto es útil si la base de datos tiene algunas consultas grandes relacionadas con la memoria caché que son grandes, pero de todos modos no son relevantes.
Usando
drush
, intente:cat foo.sql | $(drush sqlconnect) -f
Intente aplicar la
--max-allowed-packet
opciónmysql
con valores más pequeños.Aumente
max_allowed_packet
ywait_timeout
en la configuración de su servidor (por ejemplo~/.my.cnf
).Volcar la base de datos original nuevamente usando la
--skip-extended-insert
opción para desglosar las consultas grandes. Luego importe el archivo nuevamente.Ver también: ERROR 2006 (HY000): el servidor MySQL se ha ido
fuente
La respuesta que da normalmente @Clive es el caso, pero puede haber una causa adicional, especialmente con los formularios para agregar nodos.
Los formularios para agregar nodos generalmente son grandes, y procesarlos puede usar mucha memoria (especialmente si hay algún procesamiento de imagen durante el guardado, como con los módulos de recorte). Si el servidor se queda sin memoria, el proceso mysqld puede ser anulado, lo que da como resultado el mismo mensaje "desaparecido".
La clave es buscar en los registros del servidor. En una máquina CentOS, puede ver la siguiente entrada en / var / log / messages
La solución aquí es agregar más RAM o agregar / aumentar el intercambio.
fuente