Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Executar a preparação do banco

Fiz a criação do banco de dados com o nome jogoteca e criei o usuario rafael com permissão full.

Ao executar o comando: import MySQLdb print('Conectando...') conn = MySQLdb.connect(user="rafael", passwd="teste123", db="jogoteca", host="localhost")

Descomente se quiser desfazer o banco...

conn.cursor().execute("DROP DATABASE jogoteca;") conn.commit()

criar_tabelas = '''SET NAMES utf8; CREATE DATABASE jogoteca /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */; USE jogoteca;

CREATE TABLE `jogo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(50) COLLATE utf8_bin NOT NULL,
  `categoria` varchar(40) COLLATE utf8_bin NOT NULL,
  `console` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `usuario` (
  `id` varchar(8) COLLATE utf8_bin NOT NULL,
  `nome` varchar(20) COLLATE utf8_bin NOT NULL,
  `senha` varchar(8) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;'''

conn.cursor().execute(criar_tabelas)

inserindo usuarios

cursor = conn.cursor() cursor.executemany( 'INSERT INTO jogoteca.usuario (id, nome, senha) VALUES (%s, %s, %s)', [ ('luan', 'Luan Marques', 'flask'), ('nico', 'Nico', '7a1'), ('danilo', 'Danilo', 'vegas') ])

cursor.execute('select * from jogoteca.usuario') print(' ------------- Usuários: -------------') for user in cursor.fetchall(): print(user[1])

inserindo jogos

cursor.executemany( 'INSERT INTO jogoteca.jogo (nome, categoria, console) VALUES (%s, %s, %s)', [ ('God of War 4', 'Ação', 'PS4'), ('NBA 2k18', 'Esporte', 'Xbox One'), ('Rayman Legends', 'Indie', 'PS4'), ('Super Mario RPG', 'RPG', 'SNES'), ('Super Mario Kart', 'Corrida', 'SNES'), ('Fire Emblem Echoes', 'Estratégia', '3DS'), ])

cursor.execute('select * from jogoteca.jogo') print(' ------------- Jogos: -------------') for jogo in cursor.fetchall(): print(jogo[1])

commitando senão nada tem efeito

conn.commit() cursor.close()

Tenho o seguinte erro:

C:\Users\ti\AppData\Local\Programs\Python\Python37-32\python.exe "C:/Users/ti/Desktop/ZUP - RAFAEL/04 - ALURA/FLASK/PROJETOS_FLASK/prepara_banco.py" Conectando... Traceback (most recent call last): File "C:/Users/ti/Desktop/ZUP - RAFAEL/04 - ALURA/FLASK/PROJETOS_FLASK/prepara_banco.py", line 3, in conn = MySQLdb.connect(user="rafael", passwd="teste123", db="jogoteca", host="localhost") File "C:\Users\ti\AppData\Local\Programs\Python\Python37-32\lib\site-packages\MySQLdb_init__.py", line 85, in Connect return Connection(args, **kwargs) File "C:\Users\ti\AppData\Local\Programs\Python\Python37-32\lib\site-packages\MySQLdb\connections.py", line 204, in init super(Connection, self).init(args, **kwargs2) _mysqlexceptions.OperationalError: (2059, )

Process finished with exit code 1

Tentei executar o comando: pip install mysqlclient pip install MySQL-python e retornaram os seguintes erros:

Building wheels for collected packages: MySQL-python Running setup.py bdist_wheel for MySQL-python ... error

Failed building wheel for MySQL-python Running setup.py clean for MySQL-python Failed to build MySQL-python Installing collected packages: MySQL-python Running setup.py install for MySQL-python ... error

_mysql.c(42): fatal error C1083: NÆo ‚ poss¡vel abrir arquivo incluir: 'config-win.h': No such file or director y error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023 \bin\HostX86\x86\cl.exe' failed with exit status 2

Command "c:\users\ti\appdata\local\programs\python\python37-32\python.exe -u -c "import setuptools, tokenize;file='C:\Users\ti\AppDa ta\Local\Temp\pip-install-cv8_p3_5\MySQL-python\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', 'n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\ti\AppData\Local\Temp\pip-record-z_r0crv2\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\ti\AppData\Local\Temp\pip-install-cv8_p3_5\MySQL-pytho n\

1 resposta
solução!

Pra quem tiver o mesmo problema, usar esse topic:

https://cursos.alura.com.br/forum/topico-erro-ao-executar-arquivo-prepara_banco-py-63926