Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao trabalhar com MongoDB em ambientes locais, um erro comum que pode pegar de surpresa é o connect ECONNREFUSED, especialmente ao tentar estabelecer uma conexão via mongoose ou outros drivers. Esse problema, apesar de parecer simples, envolve várias nuances que podem afetar desde configurações de rede até a própria instalação do banco de dados.
O erro ECONNREFUSED indica que a tentativa de conexão ao endereço IP e porta especificados foi recusada pelo sistema operacional. Geralmente, isso acontece quando:
Por padrão, o MongoDB escuta na porta 27017. Caso a configuração padrão seja alterada, ou se o serviço não estiver ativo, esse erro aparece ao tentar conexão.
Primeiro, confirme se o MongoDB está ativo no sistema. Em sistemas baseados em Linux, utilize:
sudo systemctl status mongod
Se estiver parado, inicie com:
sudo systemctl start mongod
Para verificar em qual porta o MongoDB está escutando, confira o arquivo de configuração, normalmente localizado em /etc/mongod.conf. Procure pela entrada net.port. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Se o arquivo de configuração não estiver facilmente acessível, ou se a porta padrão foi alterada, você pode:
ps aux | grep mongod e verificar o parâmetro de inicialização.Exemplo de trecho de configuração:
net:
port: 21017
bindIp: 127.0.0.1
Após mudanças, reinicie o serviço:
sudo systemctl restart mongod
Use o comando telnet ou nc para testar a conexão na porta específica: Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
telnet 127.0.0.1 21017
Se a conexão for bem-sucedida, o problema está na sua aplicação ou na forma como ela tenta se conectar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
No código, a string de conexão deve refletir a porta correta: A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
mongoose.connect('mongodb://localhost:21017/nomedobanco').
Certifique-se também de que o usuário, se necessário, está configurado e autorizado na instância local. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
netstat -plnt para checar as portas abertas.Quando o serviço está rodando na porta correta e acessível, o erro ECONNREFUSED desaparece, e a conexão fica estável. Em ambientes de desenvolvimento, manter uma rotina de verificação de status do serviço ajuda a evitar esses contratempos, além de garantir uma melhor experiência de desenvolvimento. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Para evitar problemas similares no futuro, é interessante criar scripts de health check e logs mais detalhados, assim você consegue identificar rapidamente se o problema se relaciona à configuração, rede ou serviço. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
No meu time, uma coisa que ajuda é sempre usar o comando netstat -plnt pra verificar as portas abertas. Assim, dá pra conferir se o Mongo realmente escuta na porta que a aplicação tenta acessar.
Boa, essa questão de porta é sempre o primeiro suspeito. Já passei por isso quando o serviço do Mongo não iniciou direito na máquina. Uma dica é sempre conferir o status antes de tentar conectar na aplicação.
Verdade, Wesley. E às vezes o arquivo de config fica escondido ou diferente do padrão, aí a gente acha que tá tudo certo, mas o serviço tá rodando em outra porta.