Pessoal, Estou com um problema. Em meu codigo em determinadado momento gera um erro chamado InterfaceError ao executar uma query. Procurando no google, achei pouca coisa, pois o erro é mau documentado. Diz que é referente ao módulo, no caso MySQLdb(acho), mas já executei a query no interpretador dinâmico do python e tenho um outro código similar está funcionando normalmente. O problema é apenas nesse trecho específico. Segue o traceback: Traceback (most recent call last):
File "/home/artur/workspacePython/INSERTS/Main.py", line 12, in <module>
InsertEmTodoBanco.InsertEmTodoBanco(host='localhost',user='root',passwd='1n5p1r0n123',db='empresa_taxi')
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 20, in __init__
self.criarInsert()
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 61, in criarInsert
tabelas = self.todosRelacionamentos()
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 53, in todosRelacionamentos
for relacionamento in self.relacionamentosDe(tabela[0]):
File "/home/artur/workspacePython/INSERTS/InsertEmTodoBanco.py", line 24, in relacionamentosDe
cursor.execute("SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '"+self.db+"' AND TABLE_NAME = '"+tabela+"' AND REFERENCED_TABLE_NAME IS NOT NULL")
File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 155, in execute
charset = db.character_set_name()
_mysql_exceptions.InterfaceError: (0, '')
E a função que dá erro:
def relacionamentosDe(self,tabela):
cursor = self.con2.cursor()
cursor.execute("SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '"+self.db+"' AND TABLE_NAME = '"+tabela+"' AND REFERENCED_TABLE_NAME IS NOT NULL")
rows = cursor.fetchall()
cursor.close()
del(cursor)
self.con2.close()
listaDeRelacionamentos = []
for row in rows:
aux = (row[4],row[5],row[6],row[9],row[10],row[11])
listaDeRelacionamentos.append(aux)
return listaDeRelacionamentos
O init da classe:
class InsertEmTodoBanco(object):
con = None
con2 = None
chartam = 1
db = ''
def __init__(self,host,user,passwd,db,chartam=1):
self.con = MySQLdb.connect(host, user, passwd, db)
self.con2 = MySQLdb.connect(host, user, passwd, 'information_schema')
self.db = db
self.chartam = chartam
self.criarInsert() Alguém sabe pelo menos o que realmente é esse erro? Ou uma solução para ele?