Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Dúvida] Acesso negado ao mysql

Caused by: org.flywaydb.core.internal.exception.FlywaySqlException: Unable to obtain connection from database: Access denied for user 'root'@'10.244.1.70' (using password: YES)
------------------------------------------------------------------------------------------------------------
SQL State  : 28000
Error Code : 1045
Message    : Access denied for user 'root'@'10.244.1.70' (using password: YES)

Estou tendo este erro tando em pedidos quanto em pagamentos, que são os módulos que acessam o service do mysql. Acho que ta faltando alguma coisa relacionado ao acesso, mas eu revisei com a video aula e parece que estou com tudo nos conformes.

PS: Eu criei esse post na aula errada! Na verdade esta dúvida é sobre a aula "5(Mysql).4 - Alterando o acesso ao DB", a título de contexto ;)

1 resposta

Ei, Eduardo! Tudo bem?

Sobre o acesso negado ao MySQL no Kubernetes com Helm, a mensagem indica que a aplicação conseguiu encontrar o banco de dados, mas o MySQL recusou a autenticação do usuário root.

O trecho abaixo ajuda a identificar a causa:

Access denied for user 'root'@'10.244.1.70' (using password: YES)

Nesse caso, o endereço 10.244.1.70 é o IP do Pod que está tentando acessar o banco. Isso significa que a conexão foi estabelecida, porém o usuário root não possui permissão para acessar o MySQL a partir desse host ou a senha configurada não corresponde à cadastrada no banco.

Pontos importantes para verificar:

  • Confirme se a senha definida no Secret do Kubernetes é a mesma utilizada pelo container do MySQL.
  • Verifique se as variáveis de ambiente dos serviços pedidos e pagamentos apontam para o mesmo usuário e senha configurados no banco.
  • Confira se o banco foi recriado após alguma alteração de senha. Caso exista um Persistent Volume, o MySQL pode continuar utilizando as credenciais antigas armazenadas no volume.

Como forma de validar as credenciais, você pode acessar o Pod do MySQL e tentar a autenticação manualmente:


kubectl exec -it mysql-0 -- mysql -u root -p

Esse comando abre um terminal no Pod do MySQL e tenta realizar o login com o usuário root. Se o acesso falhar, o problema está relacionado às credenciais ou às permissões do usuário.

Caso queira verificar quais variáveis de ambiente estão chegando ao container da aplicação, utilize:


kubectl describe pod nome-do-pod

Esse comando exibe a configuração do Pod, incluindo as variáveis de ambiente e os Secrets utilizados, ajudando a confirmar se a senha e o usuário foram carregados corretamente.

Espero que dê certinho e conte sempre conosco por aqui.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!