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

Conexão recusada pelo Mysql após subir a aplicação

Olá. Estou com um erro após subir a aplicação usando a versão do "app" já alterado para usar a rede do redis(redis-forum-api) e do mysql(mysql-forum-api).

Obs.: Eu baixei o pacote da aula 4, adicionei o diretório com o conteúdo da aplicação. Além disso adicionei o diretório do Mysql com o seu script e certifiquei que o docker-compose está correto, já com todas as redes, e dependências:

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

Uso o docker-compose up --build, cheguei a remover os containers e remover as imagens, mas o erro acontece sempre. A aplicação de proxy começa a apresentar erros no começo:

proxy-forum-api         | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
proxy-forum-api         | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
proxy-forum-api         | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
proxy-forum-api         | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
proxy-forum-api         | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
proxy-forum-api         | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
proxy-forum-api         | /docker-entrypoint.sh: Configuration complete; ready for start up
proxy-forum-api         | 2023/02/02 03:27:31 [error] 21#21: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.21.0.3, server: _, request: "GET /topicos/1 HTTP/1.1", upstream: "http://172.24.0.2:8080/topicos/1", host: "proxy-forum-api"
proxy-forum-api         | 2023/02/02 03:27:32 [error] 21#21: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 172.21.0.3, server: _, request: "GET /topicos HTTP/1.1", upstream: "http://172.24.0.2:8080/topicos", host: "proxy-forum-api"

Posteriormente erros de falta de uma tabela começa a surgir:

2023-02-02 03:35:46.203  WARN 1 --- [nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1146, SQLState: 42S02
app-forum-api           | 2023-02-02 03:35:46.203 ERROR 1 --- [nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper   : Table 'forum.topico' doesn't exist
app-forum-api           | 2023-02-02 03:35:46.222 ERROR 1 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause
app-forum-api           | 
app-forum-api           | java.sql.SQLSyntaxErrorException: Table 'forum.topico' doesn't exist

Vocês têm ideia do que pode ser? Desconfio da versão do Mysql (latest, última versão), que começou a apresentar conflitos. Obs. uso Ubuntu com a mesma versãoq eu o professor usou nos videos.

1 resposta
solução!

Oi Thiago, tudo bem?

Desculpe a demora em retornar. Vi que você já finalizou o curso, então irei dar dicas do que pode ter acontecido.

Verifique se o serviço do MySQL está realmente em execução. Você pode fazer isso utilizando o comando docker ps para listar os containers em execução e verificar se o container do MySQL está presente e em estado "Up". Caso não esteja, você pode iniciar o container do MySQL utilizando o comando docker-compose up -d mysql-forum-api.

Outra possível causa para esse erro é a configuração de rede do Docker. Verifique se as redes dos containers estão corretamente configuradas no arquivo docker-compose.yml. Certifique-se de que o serviço do MySQL esteja na mesma rede que o serviço da aplicação. Caso contrário, eles não conseguirão se comunicar.

Além disso, verifique se as credenciais de acesso ao banco de dados estão corretas. Certifique-se de que o nome do host, porta, nome do usuário e senha estejam corretamente configurados na aplicação.

Por fim, é importante verificar se a tabela forum.topico realmente existe no banco de dados. O erro menciona que a tabela não existe, então pode ser necessário criar a tabela manualmente ou executar algum script de migração para criar a estrutura do banco de dados. Verifique se o diretório com o script do MySQL foi corretamente adicionado ao container do MySQL no arquivo docker-compose.yml.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software