1
resposta

[Dúvida] Conexão com BD com erro -> Error: querySrv ENODATA _mongodb. -- Resolvido/Dúvida

Seguindo a aula de conexão inicial ao MongoDB via Mongoose tive um problema na hora da conexão, toda hora apresentava esse erro de ENODATA, o que me deixava encucado já que era um 'suposto' erro de 'não retorno de dados', não parecia ser um erro de conexão propriamente... Dei uma googlada e caí no fórum do MongoDB e também no StackOverflow e pra tentar resumir algumas 'soluções' desse problema e tentar explicar a causa.

Causa: Tudo indica que é/seria a internet/provedor/dns que bloqueava a conexão 'via srv' mongodb+srv://, então as soluções eram:

Alterar o DNS usado na conexão. Algumas pessoas resolveram nesse formato, tentei usar o DNS do google e OpenDNS, mas nenhum funcionou, então pelo menos pra mim essa opção não funcionou.

Alterar o link de conexão para versão 2.2.12 do Node Então, esse funcionou, no caso o protocolo muda para mongodb:// o que me faz achar que o problema era/é realmente o srv.

Então assim... o problema foi resolvido, mas eu não tenho certeza do motivo, então quero tentar entender o que poderia ser, será que seria minha internet bloqueando esse tipo de protocolo?

Conexão mostrada no Vídeo da aula

//mongoose.connect(`mongodb+srv://${username}:${password}@${cluster}.eef4pue.mongodb.net/${dbname}`)
//    .catch(e => console.log(e))

Conexão modificada e funcionando

mongoose.connect(`mongodb://${username}:${password}@ac-udocqcl-shard-00-00.eef4pue.mongodb.net:27017,ac-udocqcl-shard-00-01.eef4pue.mongodb.net:27017,ac-udocqcl-shard-00-02.eef4pue.mongodb.net:27017/${dbname}?ssl=true&replicaSet=atlas-51e6a4-shard-0&authSource=admin&retryWrites=true&w=majority`)
//    .catch(e => console.log(e))

Eu coloquei em variáveis porque estava alterando nos testes e facilitou assim, cheguei a recriar o cluster nos testes.

A, coloquei o .catch pra pegar o erro, mas pelo que entendi da no mesmo do db.on("error", console.log.bind(console, 'Erro de Conexão')), então comentei depois de um tempo, mas deixei no código pra me lembrar disso.

1 resposta

Olá Rafael, tudo bem?

Fico feliz em saber que você conseguiu resolver o problema de conexão com o MongoDB. Realmente, pode ser que o erro tenha sido causado por algum bloqueio na sua conexão de internet ou provedor, como você mencionou. É difícil afirmar com certeza qual foi a causa exata do problema, mas é importante lembrar que, às vezes, alguns protocolos podem ser bloqueados por questões de segurança ou configuração.

De qualquer forma, é ótimo que você tenha encontrado uma solução alternativa para o problema, alterando o link de conexão para a versão 2.2.12 do Node. É sempre bom lembrar que, ao trabalhar com tecnologia, é comum encontrar problemas e desafios, mas a persistência e a busca por soluções são fundamentais para o sucesso.

Espero ter ajudado e bons estudos!