Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

_mysql_exceptions.OperationalError

Quando eu tento inserir um novo jogo aparece a mensagem de erro do próprio MYsql:

_mysql_exceptions.OperationalError

_mysql_exceptions.OperationalError: (2059, <NULL>)
Traceback (most recent call last)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 2328, in __call__

    return self.wsgi_app(environ, start_response)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 2314, in wsgi_app

    response = self.handle_exception(e)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 1760, in handle_exception

    reraise(exc_type, exc_value, tb)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\_compat.py", line 36, in reraise

    raise value

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 2311, in wsgi_app

    response = self.full_dispatch_request()

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 1834, in full_dispatch_request

    rv = self.handle_user_exception(e)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 1737, in handle_user_exception

    reraise(exc_type, exc_value, tb)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\_compat.py", line 36, in reraise

    raise value

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 1832, in full_dispatch_request

    rv = self.dispatch_request()

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask\app.py", line 1818, in dispatch_request

    return self.view_functions[rule.endpoint](**req.view_args)

    File "C:\dev\jogoteca\jogoteca.py", line 48, in criar

    jogo_dao.salvar(jogo)

    File "C:\dev\jogoteca\dao.py", line 16, in salvar

    cursor = self.__db.connection.cursor()

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask_mysqldb\__init__.py", line 94, in connection

    ctx.mysql_db = self.connect

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\flask_mysqldb\__init__.py", line 81, in connect

    return MySQLdb.connect(**kwargs)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\MySQLdb\__init__.py", line 86, in Connect

    return Connection(*args, **kwargs)

    File "C:\Users\marcio.osantos\AppData\Local\Continuum\Anaconda3\envs\k35\lib\site-packages\MySQLdb\connections.py", line 204, in __init__

    super(Connection, self).__init__(*args, **kwargs2)

    _mysql_exceptions.OperationalError: (2059, <NULL>)

Já mudei o host de 127.0.0.1 para localhost; fiz o inverso tb.

3 respostas

Oi Márcio, tudo bom?

Realmente, estranho. Qual versão do Mysql você está utilizando? Pelo o que eu dei uma pesquisada aqui a versão 8 não é suportada ainda pelo framework. Se sua versão for a 8 faz um downgrade pra 5.7 que deve dar tudo certo =)

Se sua versão não for a 8, compartilha com a gente seu código? Assim eu consigo rodar a aplicação e tentar descobrir a causa.

Abraço

solução!

Consegui rodar e já até fiz deploy no heroku. Aparentemente o erro acima foi causado por uma versão do python (3.5) que dava conflitava com o addon mysqlclient. Estou usando normalmente o mysql 8 após as correções de python e addons. Meu problema agora é fazer com que o Heroku aceite o upload das capas; tô pensando em colocar a imagem direto no banco e alterar de acordo os arquivos views.py e jogoteca.py.

Opa, fico feliz que tenha resolvido o deploy =)

Quanto ao upload de arquivos evite fazer o upload do blob no banco de dados. O ideal é sempre guardar no banco apenas o caminho pro arquivo. Isso porque você pode prejudicar bastante a escalabilidade da base jogando um blob por linha na tabela =)

Porém, acredito que pra fins de estudo não seja um problema muito grande mesmo.

Abraço