Error de Mysql y como arreglarlo

David Ortega Berdún dortega en polinux.upv.es
Mar Dic 28 18:14:41 CET 2004


A ver esto, creo que tengo las dos respuestas.

Para el sleep prueba con poner time.sleep(delay), habiendo hecho un
import time.

Para el bucle podias probar con algo por el estilo a esto:

seguir=1
while seguir==1:
	try:
		if k=='NULL':
			db.execute(sql)
		else:
			db.execute(sql,k)
		return 0
	except db.MySQLError, e:
		print e
		linea = "* Mysqlerror : "+str(e[0]) + " " + e[1]
		gl(linea)
		print linea
		return -1
	seguir=0

Así si pasa del except pondrá seguir a 0 y ya no entrará más al bucle.
No lo he probado, pero creo que funcionará y sino que me corrijan :P

Un saludo y feliz 2005.

El mar, 28-12-2004 a las 19:17 -0300, Ariel Nardelli escribió:
> Hola a todos!.
> 
> Estoy teniendo un problema con mysql desde python.
> Tengo que hacer actualizaciones intensivas sobre la base o sea hago 
> varias actualizaciones y en algun momento de las actualizaciones al azar 
> en cualquier momento se me corta el proceso con este error...
> 
> * Mysqlerror : -(6011)- E: 2013 Lost connection to MySQL server during query
> * Mysqlerror : -([1L, 3221506L, 6011])- E: 2013 Lost connection to MySQL 
> server during query
> 
> Segun puedo entender es porque se me cae el servidor mysql y en realidad 
> no es que se para sino que deja de atender porque esta ocupado.
> 
> La idea mia es si tengo este error detener la actualizacion por 5 
> segundos y luego volver a intentar actualizar la base ya que pasado un 
> ratito mysql sigue atendiendo y corriendo sin problemas, el tema mas 
> bien es que para por sobrecarga.
> 
> Esta es mi rutina que graba los datos en mysql...
> 
> def sql01(db,sql,k):
>     # Procesa sobre Mysql para procesos que no devuelvan datos!!!
>     """ Hace una operacion sobre Mysql """
>     try:
>         if k == 'NULL': # Es cuando no viene los datos del sql aparte.
>             db.execute(sql)
>         else:
>             db.execute(sql,k)
>         return 0
>     except db.MySQLError, e:
>         print e
>         linea = "* Mysqlerror : " + str(e[0]) + " " + e[1]
>         gl(linea)
>         print linea
>         return -1
> 
> Mi idea es en el except  preguntar por el error y si es ese el error el 
> 2013 hacer una pausa de 5 segundos y despues reintentar grabar...
> Pero hay 2 cosas que no se hacer y por eso pido ayuda..
> una es hacer la pausa con que comando se hace pausa de xx segundos?
> y la otra es como hacer para despues de la pausa vuelva a intentarlo o 
> sea vuelva a try: para reintentar la grabacion, algo asi como un goto 
> que en python no existe.. :)
> 
> Alguien puede tirarme una mano?, ya que la maquina es chica en donde 
> esta el mysql este va a ser un error normal mas de una vez va a quedar 
> en espera porque la pobre maquinita no da a vasto para lo que quiero 
> hacer asi que es normal que me largue este tipo de errores.
> 
> Gracias a todo por la ayuda!!!
> FELIZ 2005!
> 
> Ariel
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es


-- 
David Ortega Berdún <dortega en polinux.upv.es>
Encargado de Infraestructuras y CoAdministrador en PoLinux

Obtén mi clave pública de:
http://www.polinux.upv.es/~dortega/dortega.gpg
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje está firmada	digitalmente
URL: <http://mail.python.org/pipermail/python-es/attachments/20041228/2f9e8871/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es