Jump to content
Fórum Script Brasil
  • 0

MySQLdb, InterfaceError


Artur Galeno

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...