A alguien le pasó esto alguna vez?

cristianwds's picture

Estoy intentando instalar un modulo y cuando termino de habilitarlo me aparece este error:

Warning: MySQL server has gone away query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:476145:\"MySQL server has gone away\nquery: UPDATE cache_update SET data = 'a:47:{s:10:\"admin_menu\";a:10:{s:5:\"title\";s:19:\"Administration menu\";s:10:\"short_name\";s:10:\"admin_menu\";s:10:\"dc:creator\";s:3:\"sun\";s:11:\"api_version\";s:3:\"6.x\";s:17:\"recommended_major\";s:1:\"1\";s:16:\"supported_majors\";s:3:\"1,3\";s:13:\"default_major\";s:1:\"1\";s:14:\"pro in /home/diasdehi/public_html/includes/database.mysqli.inc on line 128

a alguien le pasó?

hay algun limite de modulos que se puedan instalar? porque si lo desinstalo y vuelve todo a la normalidad.

que debería decir en este archivo: /includes/database.mysqli.inc on line 128?

el sitio es http://www.diasdehistoria.com.ar

muchas gracias.

Grupos:
Login or register to post comments

Cristian, Seguramente el

mariano.barcia's picture
mariano.barcia - Dom, 2010-03-14 22:40

Cristian,

Seguramente el shared hosting que tiene un timeout de MySQL de 15 segundos o algo así, y drupal tiene algunas operaciones que duran más.

Una solucion es utilizar db_tweaks
http://drupal.org/project/db_tweaks

HTH, salud


Mariano

cristianwds's picture
cristianwds - Mar, 2010-03-16 04:06

gracias por tu respuesta,

pero me sigue pasando lo mismo ya que cuando quiero habilitar este modulo db_tweaks me explota todo con ese mismo error.

Creo que no debo tener todos los permisos en el servidor...voy a averiguar

muchas gracias

Arsan


Podés adoptar esta solución

mariano.barcia's picture
mariano.barcia - Mar, 2010-03-16 04:25

Podés adoptar esta solución como temporaria, y luego habilitar db_tweaks y volverla atrás.
http://drupal.org/node/259580#comment-1511512


ahora si Mariano

cristianwds's picture
cristianwds - Mar, 2010-03-16 04:55

millon de gracias

ya volvio a la normalidad

saludos

Arsan


Entrá en phpmyadmin y fijate el estado de las tablas

victorkane's picture
victorkane - Jue, 2010-03-18 23:20

Efectuá un repair de las tablas que tiene overhead o que están marcados como "en uso".

Suena más que tenés algun problema con alguna tabla en tu base de datos si todo ha estado bien hasta ahora.


Realmente espero que me funcione bien

amarilys's picture
amarilys - Mar, 2010-05-11 18:39

Llevo dos dias que no descanso con este problema, pero luego llegué a este sitio y hasta ahora, puedo decir que encontre la solucion. Mil Gracias.


Hay un artículo muy interesante publicado ayer

victorkane's picture
victorkane - Mié, 2010-05-12 09:04

sobre problemas afines:

http://www.advomatic.com/blogs/dave-hansen-lange/dreaded-mysql-has-gone-...

Resulta que los problemas de que MySql "se vuelva loco" y paralice un servidor muchas veces es debido a que por defecto, cada conexión con la base de datos sigue con vida por 8 horas. Entonces si algo pasa y no se termina la transacción bien, se van consumiendo todas las conexiones. Entonces la gente agrega en /etc/my.cnf (el archivo de configuración de MySql) una entrada para "wait_timeout" de unos pocos minutos. Entonces, nunca más mensajes de error "no hay más conexiones ..."

La contra de esto es que, cuando hay una tarea larga y/o pesada, que necesita más tiempo, la conexión termina antes de lo debido, y ahora recibís el error elusivo "MySql se ha ido..." (MySql has gone away...).

Como esto ocurre con tareas especiales (tipo cron, etc., con indexación para la búsqueda de Drupal, etc.), el artículo sugiere algo de código PHP para customizar el tiempo de vida (wait_timeout) para sesiones especificas, una opción no muy conocida.


Lo probe y funciono

m.reyes74 - Vie, 2010-05-21 21:59

Hola amigos llevaba dias con el problema, gracias por el aporte, me ha sido de gran ayuda

Un saludo


no hay caso

mama21mama's picture
mama21mama - Vie, 2011-03-25 07:34

no hay caso me pasa lo mismo

Warning: MySQL server has gone away query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:567009:\"MySQL server has gone away\nquery: UPDATE cache_update SET data = 'a:40:{s:5:\"abuse\";a:10:{s:5:\"title\";s:5:\"abuse\";s:10:\"short_name\";s:5:\"abuse\";s:10:\"dc:creator\";s:6:\"BTMash\";s:11:\"api_version\";s:3:\"6.x\";s:17:\"recommended_major\";s:1:\"1\";s:16:\"supported_majors\";s:3:\"1,2\";s:13:\"default_major\";s:1:\"1\";s:14:\"project_status\"; in /home/a8488742/public_html/mamalibre/includes/database.mysql.inc on line 136


Ver el artículo mencionado arriba sobre "MySQL server gone away"

victorkane's picture
victorkane - Vie, 2011-03-25 07:41

Si se repite esto con frecuencia hay problemas de configuración de MySQL en tu sitio.

Consultáme respecto a mentoring sobre el asunto.


El mismo problema sin arreglar

marta_yo's picture
marta_yo - Jue, 2011-04-14 09:40

Yo también tengo exactamente ese problema al ejecutar el cron teniendo el módulo search activado.

La web está en un hosting compartido pero con el paquete business, el más caro.

Probé a borrar el semáforo, el módulo db_tweaks y el supercron, el hook en database.mysql.inc y database.mysqli.inc, en las Opciones de búsqueda aumenté el nº de letras a indexar y reduje el nº de elementos, y finalmente probé el módulo que indicó victorkane.
Nada funcionó, sigo con el mismo mensaje :(


Es un tema no sencillo, pero

victorkane's picture
victorkane - Jue, 2011-04-14 09:51

Es un tema no sencillo, pero por las dudas, probá con el siguiente configuración para MySql (o pedí que el soporte lo haga, en lo posible):

wait_timeout = 1800

ya que por defecto si un thread se cuelga el timeout es muy largo, y se van usando todos.

Podría ayudar. ¿Qué hosting estás usando?


es un hosting business de ovh

marta_yo's picture
marta_yo - Jue, 2011-04-14 10:19

es un hosting business de ovh


En su sitio web hacen alarde de "High availability"

victorkane's picture
victorkane - Jue, 2011-04-14 10:30

Entonces deben ayudarte en el tuning del MySql.

Ahora bien, como es el caso con otros hosting, el servidor de MySql no está en el mismo servidor que el servidor web; esto podría llevar a lentitud en la hora de hacer búsquedas y pedidos a la base de datos:

"The SQL Database Servers

MySQL databases are stored on separate servers renowned for this purpose.
Every SQL server is a high-availability machine with several RAID-1 hard disks. In case of a hard disk failure the other takes over its function without data loss. The security of your data is the most important issue for us."

http://www.ovh.co.uk/shared_hosting/we_hosting_without_limits.xml

Si tenés bastante tráfico, estarías mejor con un hosting que no hace esto, o, optar por un dedicated server (bastante más costo). Desgraciadamente, parece que no tienen VPS.

Hoy día Drupal no es una cosa rara que alguna gente usa, sino una solución de primera, entonces el hosting te tiene que ayuar con esto.

La otra, Marta, sería sacar el cron, y indexá cada tanto a mano en un horario de poco tráfico, sacando el sitio fuera de línea para hacerlo.


mm... lo de indexar el sitio

marta_yo's picture
marta_yo - Jue, 2011-04-14 11:13

mm... lo de indexar el sitio manualmente es muy interesante, así podría hacerlo poco a poco y ver cuál es el problema. el módulo supercron te permite desactivar cada tarea del cron de manera individual, puedo desactivar el search y dejar el resto.

alguna idea o módulo por dónde empezar?

lo del servidor dedicado ya lo habíamos pensado, pero para más adelante. de momento solo tiene unos 550 usuarios y no hay más de 20 o 30 usuarios conectados a la vez como máximo. no debería estar dando estos problemas tan pronto...


Correr cron desde la administración

victorkane's picture
victorkane - Jue, 2011-04-14 11:12

Por ejemplo, en Drupal 6, andá a Configuración del sitio / Opciones de búsqueda

Bajar el número de elementos a indexar en cada ejecución del cron (digamos a 50 o menos hasta que se resuelve el problema).

Luego, en un momento de poco tráfico, y tal vez las primeras veces con el sitio fuera de línea, oprimí el botón Volver a Indexar el Sitio

Para ejectuar cron manualmente, ir a Informes / Informe de estado (Reports / Status report)

Hacia el final, dice "Tareas de mantenimiento de cron" y te informa sobre cuándo fue ejecutado cron, y es allí donde hay un link a "ejecutar cron manualmente".

Yo por mí parte, no usaría todos los módulos "extrafalarias" sobre cron, etc. sino que correría cron manualmente hasta que se solucione (bajando la cantidad de elementos a indexar)...

Avisá si eso ayuda.


eso ya lo había probado,

marta_yo's picture
marta_yo - Jue, 2011-04-14 11:22

eso ya lo había probado, poniéndole 10 elementos a indexar (el mínimo) y una longitud de 4 caracteres. pero nada.

me refería a hacer un módulo propio para indexar el sitio, pero no entiendo muy bien qué valores tienen las tablas search_dataset, search_index, etc.

también he visto que existe la funcion _node_index_node($node), empezaré por ahi


Buscá un VPS bueno y barato y migrar a Apache Solr

victorkane's picture
victorkane - Jue, 2011-04-14 11:29

Mucho menos esfuerzo que emparchar el viejo y horrible Drupal Search.

Recomiendo http://www.linode.com/ o slicehost

Tengo un artículo escrito sobre cómo instalar todo en linode: http://awebfactory.com.ar/node/444


gracias victor, voy a

marta_yo's picture
marta_yo - Jue, 2011-04-14 11:35

gracias victor, voy a mirarlos :)