0
votes

Impossible de se connecter à MongoDB Atlas (queryTxt ETIMEOUT)

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)


1 commentaires

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


4 Réponses :


4
votes

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


0 commentaires

1
votes

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


0 commentaires

1
votes

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.


0 commentaires

1
votes

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.


1 commentaires

Merci. J'ai résolu mon problème