не могу подключиться к атласу mongodb - PullRequest
0 голосов
/ 28 мая 2019

Невозможно подключиться к атласу mongodb через драйвер, mongoshell или mongodb compass. Получить к ошибке: queryTxt ETIMEOUT

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' }

Я следовал руководству из атласа mongodb (mongodb.cloud) по подключению:

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();
});

с заменой имени пользователя и пароля на реальное строковое значение. У меня есть сильное чувство, что причина в том, что + srv часть. При использовании mlab ранее, соединение только mongodb: // (без + srv)

1 Ответ

0 голосов
/ 28 мая 2019

Решил проблему, обратившись в службу поддержки MongoDB.Строка URI должна быть изменена на:

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

Это все имена хостов (первичные и вторичные), которые вы можете видеть на вкладке метрик кластера

...