Ir para conteúdo
Fórum Script Brasil
  • 0

MySQLdb, InterfaceError


Artur Galeno

Pergunta

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?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Problema Resolvido.

A questão era que eu estava utilizando mais de uma conexão simutânea, apesar delas serem em bancos diferentes, tava gerando esse erro.

Resolvi fazendo um gerencimanento dessas conexões na minha aplicação para nunca deixar mais de uma aberta.

Valeu!

Moderação, pode fechar o tópico. ^_^

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...