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

[Bug] Aplicação não conecta ao mysql do docker

Amigos Devs, tenho problema na conexão entre a aplicação e o bando de dados criado no docker . Utilizo o Ubuntu 24 , então não utilizo o docker desktop , e sim por linha de comando. Já criei o bando de dados no docker , mas quando tento conectar a aplicação a conexão é recusada. Já fiz os seguintes passos : --Como estou utilizando a porta 3306 para o mysql instalado na minha máquina, então configurei o do docker para a porta 3307 ; --Quando disparo "docker inspect mydbsql , vejo que o ip que aparece é o 172.14.0.1 e o 172.14.0.2 e a porta citada, então coloco esta configuração na string de conexão mas a resposta é recusada; --Vi em outro post para usar esta especificação na string : "host.docker.internal:"porta que estou usando" . Já tentei e também não deu certo; -- Consultei outros foruns e vi uma dica para mudar os privilégios do usuário que talvez desse certo a conexão...tambem fiz isso e nada; segue as imagens das telas para possível correção de bug : Comando Docker inspect : Insira aqui a descrição dessa imagem para ajudar na acessibilidadetela Docker inspect 01 : Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Erros: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Olá Vanderson, como vai?

Vamos tentar algumas soluções para resolver isso:

  1. Verifique a Exposição da Porta: Certifique-se de que a porta 3307 do seu container está corretamente mapeada para a sua máquina host. Você pode fazer isso ao iniciar o container com o comando:

    docker run -p 3307:3306 --name mydbsql -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql
    

    Isso mapeia a porta 3306 do container para a porta 3307 do host.

  2. String de Conexão: Na sua aplicação, a string de conexão deve apontar para localhost ou 127.0.0.1 na porta 3307, já que você está acessando a partir do host:

    jdbc:mysql://localhost:3307/nome_do_banco?useSSL=false&serverTimezone=UTC
    
  3. Verifique as Configurações de Rede: Certifique-se de que o container está usando a rede padrão bridge. Você pode verificar isso com:

    docker network ls
    

    E para inspecionar a rede:

    docker network inspect bridge
    

Espero que essas dicas ajudem a resolver o problema!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá Armano, obrigado pela atenção e dica. Tentei sua orientação mas ainda não consegui acessar o banco. Mas percebi uma diferença desta vez. Quando faço uma requisição GET pelo navegador consigo ver que o banco subiu, só não consigo acessar ele pela aplicação .

Segue as capturas de telas do procedimentos : Meu Aplication.prorpeties: Aplication Prorpeties com a string indicada no post

A tela de erro:

Tela de erro do Spring boot

Navegador fazendo chamada para a porta 3307:

Tela de resposta quando utilizado o navegador fazendo umaa chamada GET para a porta 3307

solução!

Olá ! Resolvi mudando um parâmetro na String :

jdbc:mysql://localhost:3307/nome_do_banco?useSSL=true&serverTimezone=UTC

...em useSSL , coloquei true então o banco conectou .

Obrigado pelo apoio !