22
respostas

Erro ao executar o prepara_banco.py

Referente ao curso Flask parte 2: Avançando no desenvolvimento web, no capítulo Persistência com MySQL e atividade Persistindo informações no MySQL

Por favor poderia me orientar a resolver esses erros?

Traceback (most recent call last):

File "C:/RAFAEL - ARQUIVOS/PROGRAMMING FOR EVERYBODY - PYTHON/ALURA/FLASK - PYTHON - P1 e P2/JOGOTECA/prepara_banco.py", line 5, in conn = MySQLdb.connect(user='root', passwd='admin', host='127.0.0.1', port=3306)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb_init_.py", line 130, in Connect return Connection(args, *kwargs)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb\connections.py", line 185, in init super().init(args, *kwargs2) MySQLdb._exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

Agradeço desde já!

22 respostas

Oii Rafael, como você está? Espero que esteja bem ^-^

Esse erro está indicando que provavelmente as credenciais de usuário e senha do banco estão incorretas.

O primeiro teste é verificar se as credenciais estão corretas.

Outro teste que pode fazer, é ao invés de colocar host='127.0.0.1' no arquivo prepara_banco.py, coloque host='localhost'

Faça esses testes e me diga o resultado.

Fico no aguardo para te ajudar =)

Boa tarde, Nádia! Obrigado pelo retorno. Alterei o host conforme acima. Segue com erros , praticamente os mesmos, note:

Traceback (most recent call last): File "C:/RAFAEL - ARQUIVOS/PROGRAMMING FOR EVERYBODY - PYTHON/ALURA/FLASK - PYTHON - P1 e P2/JOGOTECA/prepara_banco.py", line 5, in conn = MySQLdb.connect(user='root', passwd='admin', host='localhost', port=3306) File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb_init__.py", line 130, in Connect return Connection(args, **kwargs) File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb\connections.py", line 185, in init super().init(args, **kwargs2) MySQLdb.exceptions.OperationalError: (2002, "Can't connect to MySQL server on 'localhost' (10061)")

Rafael, vamos verificar se o servidor do MySQL está em execução, para isso, vamos fazer os seguintes passos:

  • Aperte a tecla Windows + R e digite "services.msc", você verá uma tela similar a imagem abaixo:

image

  • Após isso, procure pelo serviço MySQL :

image

  • Clique com o botão direito nesse serviço e clique para "iniciar" o serviço. Caso ele esteja em execução, primeiro clique em "parar" e após isso, clique em "iniciar".

Agora, volte ao seu código e tente fazer a execução.

Fique tranquilo caso ainda não obtenha êxito, vamos buscando soluções alternativas para que você possa dar prosseguimento com o curso, a gente vai se falando. Fico no aguardo =)

Olá Nadia tirei um print, ele não aparece.... não consegui colar o print aqui.

Vou descrevar o aconteceu:

No meu não aparece o MYSQL80 conforme acima. Eu tenho instaldo pois eu fiz o curso Introdução ao MySQL

Porém mais abaixo na letras S eu encontro o seguinte:

sql server sql sever agent sql sever browser sql sever vss writer

Obrigado pelo suporte.

Rafael, vou te pedir para postar esse print que você mencionou só para confirmar, tá bom?

Também vou te pedir para digitar na barra de pesquisa do Windows o nome "Mysql" e anexar um print disso.

Para postar uma imagem aqui no fórum, faça o upload dela no Imgur e poste o link na resposta.

Fico no aguardo =)

boa tarde Nadia, muito onrigado pela atenção.

segue o link do Imgur.

https://imgur.com/a/MEd26Cp

Ats

Rafael

Rafael, como o mysql não está aparecendo nos serviços, vou te pedir para que faça o seguinte:

  • Vá até o painel de controle do seu computador e desinstale os programas referentes ao mysql, por exemplo:

image

  • Agora, vá até esta aula e veja a instalação passo a passo do mysql. No minuto 7:50 é configurado as credenciais de senha do banco, o usuário padrão é o root. (essas credenciais que você colocará no seu código python em user e passwd)

  • Após fazer os passos acima e instalar o mysql novamente em sua máquina, vá até o código Python e tente fazer a execução.

Peço a você um pouquinho de paciência, pois por vezes erros de ambiente levam um tempinho, mas fique tranquilo que iremos resolver.

Fico no aguardo.

Olá Nadia.

Eu tirei print desses arquivos, pois quero confirmar se devo apagra também. Eles são antigos.....

https://imgur.com/a/KF7oajh

ats

Rafael

Se são antigos e você não está mais utilizando, pode apagar sim, Rafael

Olá Nadia.

Desinstalei tudo referente ao SQL incluse esses arquivos:

Microsoft SQL 2014, Microsoft SQL Server 2014 e outros arquivos Microsoft SQL. Porém aconteceu que o meu VS Code perdeu as Tags ou seja não cira mais os atalhos e o colorido dos comandos.

Pelo que eu vi tem a ver com essa ação.

O que vocês orientam a fazer? Faço a instalação do My SQL conforme a aula sugerida acima e reinstalo o VS Code?

Ats Rafael

Seria bom instalar o Install SQL Server 2019 ? E depois continuar com a instalacão do MySQL conforme a aula sugerida?

Ats Rafael

Por hora, faça a instalação do Mysql conforme sugerido e tente executar o arquivo prepara_banco.py. Me conte se deu certo =)

Fico no aguardo.

Boa tarde Nadia.

Não deu certo. Esse video de instalar o MySQL não bate com os procedimentos que pede na prática.

Traceback (most recent call last): File "C:/RAFAEL - ARQUIVOS/PROGRAMMING FOR EVERYBODY - PYTHON/ALURA/FLASK - PYTHON - P1 e P2/JOGOTECA/prepara_banco.py", line 5, in conn = MySQLdb.connect(user='root', passwd='admin', host='localhost', port=3306)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb_init_.py", line 130, in Connect return Connection(args, *kwargs)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb\connections.py", line 185, in init super().init(args, *kwargs2) MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on 'localhost' (10061)")

Os mesmos erros aparecem....

Após a nova instalação o MySql está aparecendo nos serviços conforme a imagem abaixo?

image

  • Teste novamente voltar para o padrão 127.0.0.1 no host e execute novamente o arquivo prepara_banco.py.

  • Outro teste que podemos fazer é utilizar uma biblioteca de banco de dados alternativa.

  • Instale a biblioteca pela linha de comando digitando o seguinte:

    • pip install mysql-connector-python

Agora, crie um novo arquivo python e escreva o seguinte código:

import mysql.connector


conexao = mysql.connector.connect(
    host="localhost",
    port=3306,
    user="seu usuario do banco",
    password="sua senha do banco"
)

if conexao.is_connected():
    print('O banco de dados está conectado!')

Faça a execução desse código e caso seja retornado a mensagem: "O banco de dados está conectado!", conseguimos fazer a conexão.

Fico no aguardo do seu retorno.

Olá Nadia tudo bem.

Uma coisa que percebi quando abro o Workbench abaixo do MYSQL Connections descreve o seguinte:

Local Instance wampmysqld64(eu desinstalei ele mas continua aparecendo o nome) root localhost:3306

no Local Instance do video do professor de mysql está MySQL80 .....

Sabe se tem haver? Como eu deixo o Local Instance = MySQL80?

Mudei para o host 127.0.0.1

Traceback (most recent call last):

File "C:/RAFAEL - ARQUIVOS/PROGRAMMING FOR EVERYBODY - PYTHON/ALURA/FLASK - PYTHON - P1 e P2/JOGOTECA/prepara_banco.py", line 5, in conn = MySQLdb.connect(user='root', passwd='admin', host='127.0.0.1', port=3306)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb_init_.py", line 130, in Connect return Connection(args, *kwargs)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\MySQLdb\connections.py", line 185, in init super().init(args, *kwargs2)

MySQLdb._exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

Olá Nadia , acabei de fazer os passos solicitados.

O MySQL80 está aparecendo no serviços ! OK

Criei o arquivo novo em python, mas tabém não deu certo

Traceback (most recent call last): File "C:/RAFAEL - ARQUIVOS/PROGRAMMING FOR EVERYBODY - PYTHON/ALURA/FLASK - PYTHON - P1 e P2/JOGOTECA/newfile.py", line 3, in conexao = mysql.connector.connect(

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\mysql\connector_init_.py", line 271, in connect return MySQLConnection(args, *kwargs)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\mysql\connector\connection.py", line 107, in init self.connect(**kwargs)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\mysql\connector\abstracts.py", line 985, in connect self.openconnection()

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\mysql\connector\connection.py", line 310, in openconnection self.doauth(self.user, self.password,

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\mysql\connector\connection.py", line 219, in doauth self.authswitch_request(username, password)

File "C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\lib\site-packages\mysql\connector\connection.py", line 276, in authswitch_request raise errors.get_exception(packet) mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'seu usuario do banco'@'localhost' (using password: YES)

O MySQL80 está aparecendo no serviços ! OK

Ótimo, estamos no caminho =)

Esse novo que foi gerado: "Access denied for user 'seu usuario do banco'@'localhost' (using password: YES)" é porque é necessário substituir no código as credenciais de host e password, nesse trecho abaixo:

 user="seu usuario do banco",
 password="sua senha do banco"

Onde está escrito "seu usuario do banco" coloque o usuário do banco, o padrão é "root", e onde está escrito "sua senha do banco" coloque sua senha do banco que você criou no momento de instalar o mysql.

Após essas substituições, tente executar o código novamente e veja se irá aparecer a mensagem: "O banco de dados está conectado!"

Fico no aguardo.

Olá Nadia tudo bem. Muito obrigado pela atenção e ajuda que você me deu.

Eu consigue fazer o flask linkar com o MySQL, a falha foi que eu não criei o banco de dados jogoteca no MySQL. Eu sou muito leigo na área.

"C:\RAFAEL - ARQUIVOS\PROGRAMMING FOR EVERYBODY - PYTHON\ALURA\FLASK - PYTHON - P1 e P2\JOGOTECA\venv\Scripts\python.exe" "C:/RAFAEL - ARQUIVOS/PROGRAMMING FOR EVERYBODY - PYTHON/ALURA/FLASK - PYTHON - P1 e P2/JOGOTECA/prepara_banco.py"

Conectando...
 -------------  Usuários:  -------------
Danilo
Luan Marques
Nico
 -------------  Jogos:  -------------
God of War 4
NBA 2k18
Rayman Legends
Super Mario RPG
Super Mario Kart
Fire Emblem Echoes

Queria dar um feedback. Acho que seria bom colocar uma observação no curso de instalção do MYSQL. A maneira como instala hoje não bate com a do video.

Como eu disse sou leigo no assunta. Apenas uma observação para a Alura analisar, se defato é necessário.

Eu baixei o aqruivo maior que instala na maquina, se não me engano , o do video pede o que fica na internet e é menor.

Acho que tem uma diferença que pode atrapalhar quem está iniciando.

Meus sinceros agradecimentos, de verdade.

Agora posso continuar meus estudos. :)

Eu consigue fazer o flask linkar com o MySQL, a falha foi que eu não criei o banco de dados jogoteca no MySQL. Eu sou muito leigo na área.

O código que o professor disponibilizou cria automaticamente o banco, e o retorno do seu código com os nomes dos jogos e usuários mostrou que obtivemos êxito na criação.

Fico feliz que tenha conseguido obter sucesso. Agradeço sua paciência e parabenizo pela persistência na resolução desse erro. Levarei seu feedback para a equipe para que possamos melhorar a experiência de vocês.

E qualquer dúvida que houver durante o curso fique a vontade para postar aqui no fórum, estou por aqui =)

Abraços e bons estudos!