SOLUCION - Error con Mysql..

Ariel Nardelli pan_python en yahoo.com.ar
Jue Ago 24 06:23:08 CEST 2006


Hola a todos!!!!!!!!!!

Finalmente encontre la solucion...

El problema radica en el modulo python-mysqldb, esta reportado en varios 
lados como un error grabe a solucionar, todavia no esta disponible en 
debian etch la solucion....

El modulo problematico en cuestion es la python-mysqldb 1.2.1-p2-2 este 
es el modulo malo, la solucion es bajar una version pero trae problemas 
de imcompatibildiad y faltan librerias asi que directamente me baje e 
instale la version de la debian testing (1.2.1-p2-3) que ya trae 
corregido este error y ya instalado funciona SIN PROBLEMAS con el mysql 5.0.

A quienes me han tirado ideas en especial CHEMA MIL GRACIAS!!!!

Ariel

Chema Cortes wrote:
> Ariel Nardelli escribió:
>   
>> Hola Chema y a la lista!
>>
>> Te cuento que ahora tengo mas datos...
>>
>> Si yo intento directamente ejecutar desde la linea de comandos me pasa
>> esto...
>>
>> Python 2.3.5 (#2, Jul 30 2006, 15:57:01)
>> [GCC 4.1.2 20060715 (prerelease) (Debian 4.1.1-9)] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>>     
>>>>> import sys,MySQLdb
>>>>> conn = MySQLdb.connect(host="sql1",user="XXX",passwd="XXX",db="lukas")
>>>>>           
>> Traceback (most recent call last):
>>  File "<stdin>", line 1, in ?
>>  File "/usr/lib/python2.3/site-packages/MySQLdb/__init__.py", line 75,
>> in Conne                                   ct
>>    return Connection(*args, **kwargs)
>>  File "/usr/lib/python2.3/site-packages/MySQLdb/connections.py", line
>> 207, in _                                   _init__
>>    self.autocommit(False)
>> _mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you
>> can't run                                    this command now")
>>     
>
> ¿Qué versión de mysql usas? Por lo que veo, falla cuando desactiva las
> transacciones automaticas (.autocommit(False)). Puede ser debido o por
> ser una versión de mysql antigua o porque usas un motor sin
> transacciones. Prueba con un conector de una versión anterior, para
> mysql 4.24.
>
> Me pasaba algo parecido con Informix. El conector fallaba al desactivar
> el autocommit con versiones nuevas (10.0). Tuve que modificar el código
> para añadir un argumento al .connect que permitiera desactivar el
> autocommit a voluntad. A causa éste y otros problemas, al final cambié a
> jython/jdbc y dejé de tener problemas.
>
>
> En lugar de cambiar el código, podías intentar quitar la comprobación
> que hace sobre las transacciones del servidor con algo así, a ver si
> funciona:
>
> from MySQLdb import Connection
> from MySQLdb.constants import CLIENT
>
> class myConnection(Connection):
>   def __init__(self,*args,**kwargs):
>     self.server_capabilities ^= CLIENT.TRANSACTIONS
>     super(Connection,self).__init__(self,*args,**kwargs)
>
> con=myConnection(...)
>
>
> Sólo influye en el inicio de la conexión; no debería afectar al control
> de transacciones a través de sentencias SQL.
>
>
>   




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