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