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

Erro ao rodar prepara_banco.py

Bom dia. Estou tendo dificuldades ao rodar o arquivo prepara_banco.py. Já fiz a instalação do mysqldb, mas sempre ao importar o MySQLdb no código aparece o erro abaixo:

"C:\Program Files (x86)\Python37-32\python.exe" C:/Users/Luiz/PycharmProjects/jogoteca/prepara_banco.py
Traceback (most recent call last):
  File "C:/Users/Luiz/PycharmProjects/jogoteca/prepara_banco.py", line 1, in <module>
    import MySQLdb
ModuleNotFoundError: No module named 'MySQLdb'

Tentei usando o pymysql no lugar e a conexão funcionou, mas também retorna erro ao executar o restante do código.

"C:\Program Files (x86)\Python37-32\python.exe" C:/Users/Luiz/PycharmProjects/jogoteca/prepara_banco.py
Conectando...
Traceback (most recent call last):
  File "C:/Users/Luiz/PycharmProjects/jogoteca/prepara_banco.py", line 26, in <module>
    conn.cursor().execute(criar_tabelas)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\cursors.py", line 170, in execute
    result = self._query(query)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\cursors.py", line 328, in _query
    conn.query(q)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\connections.py", line 517, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\connections.py", line 732, in _read_query_result
    result.read()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\connections.py", line 1075, in read
    first_packet = self.connection._read_packet()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\connections.py", line 684, in _read_packet
    packet.check_error()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\pymysql\err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE DATABASE `jogoteca` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ' at line 2")

Process finished with exit code 1

Alguém passou por isso? Estou utilizando Windows, já pesquisei diversas fontes, tentei diversas correções, mas nenhuma funcionou. Estou fazendo o curso pra realizar um projeto no trabalho utilizando oracle, será que compensa mais tentar trocar o banco e ir adaptando?

2 respostas
solução!

A versão 3.7 do Python que estou utilizando não é compatível ainda com o flask_mysqldb.

Oi Luiz, boa tarde. Tudo bem?

Perdão pela demora em lhe dar um retorno. Tente instalar esta dependência do mysqldb:

pip.exe install mysqlclient

Detalhe: estou usando a versão 3.6 do Python, por mais que a documentação do mysqldb diga que ele funcione no Python 3.7, ainda possui instabilidades.

E após isto, tente executar o arquivo prepara_banco.py novamente.

Abraços e bons estudos!