Je ne peux pas me connecter à MongoDB Atlas via le pilote, mongoshell ou la boussole MongoDB. Obtenir l'erreur: queryTxt ETIMEOUT
const MongoClient = require(âmongodbâ).MongoClient; const uri = "mongodb+srv://<username>:<password>@clustermasjeed1-ekpfe.mongodb.net/test?retryWrites=true"; const client = new MongoClient(uri, { useNewUrlParser: true }); client.connect(err => { const collection = client.db("test").collection("devices"); // perform actions on the collection object client.close(); });
J'ai suivi le guide de l'atlas mongodb (mongodb.cloud) sur la façon de me connecter:
Error: { Error: queryTxt ETIMEOUT clustermasjeed1-ekpfe.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js:197:19) errno: 'ETIMEOUT', code: 'ETIMEOUT', syscall: 'queryTxt', hostname: 'clustermasjeed1-ekpfe.mongodb.net' }
avec le nom d'utilisateur et le mot de passe remplacés par une valeur de chaîne réelle. J'ai le sentiment fort que la cause est + partie srv. Lors de l'utilisation de mlab auparavant, la connexion est uniquement mongodb: // (sans le + srv)
4 Réponses :
Résolution du problème en contactant le support MongoDB. L'URI de la chaîne doit être remplacé par:
mongodb://<username>:<password>@clustermasjeed1-shard-00-00-ekpfe.mongodb.net:27017,clustermasjeed1-shard-00-01-ekpfe.mongodb.net:27017,clustermasjeed1-shard-00-02-ekpfe.mongodb.net:27017/test?ssl=true&replicaSet=ClusterMasjeed1-shard-0&authSource=admin&retryWrites=true
Ce sont tous les noms d'hôte (principaux et secondaires) que vous pouvez voir sur l'onglet métriques du cluster
J'ai rencontré un problème similaire.
Ma chaîne était:
.connect( "mongoURI": "mongodb://user:<password>@cluster0-shard-00-00-lo1zs.mongodb.net:27017,cluster0-shard-00-01-lo1zs.mongodb.net:27017,cluster0-shard-00-02-lo1zs.mongodb.net:27017/<dbname>?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true", )
Le terminal de code VS a montré ces erreurs.
[0] Server started on port 9999<br/> [0] queryTxt ETIMEOUT cluster0-lo1zs.mongodb.net<br/> [1] Proxy error: Could not proxy request /api/profile/user/5f2be6e70fa40287805f6488 from localhost:3000 to http://localhost:9999/.<br/> [1] See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNRESET).<br/> [1]<br/> [0] [nodemon] app crashed - waiting for file changes before starting...<br/>
Cela a soulevé une erreur que j'ai résolue en apportant cette modification:
.connect( "mongoURI": "mongodb+srv://user:<password>@cluster0-lo1zs.mongodb.net/<dbname>?retryWrites=true&w=majority" )
Plus de détails sur peuvent être trouvés ici
J'écris cette réponse après avoir fait des recherches sur de nombreux sites Web et même contacté le support MongoDB.
Le problème concerne le serveur DNS de votre wifi. Veuillez changer votre wifi ou utiliser le hotspot mobile et également ajouter à la liste blanche l'IP actuellement connectée sur MongoDB, cela aidera sûrement, ou changer le DNS de votre wifi.
Appréciez David Buck et Abhay Kumar:
Ce problème est lié à la connexion du réseau. Le wifi ou toute autre connexion filaire n'obtient pas tous les privilèges pour transférer ou connecter votre système au réseau MongoDB. Solution: Liste blanche IP dans Mongodb et vous devez ajouter 8.8.8.8 dans le DNS public de votre système sous Ethernet - IP V4.
Merci. J'ai résolu mon problème
Cela a fonctionné pour moi, en effet vous devez modifier votre chaîne initiale fournie par leur onglet de connexion lorsque vous voulez configurer ... Assez fou cependant