Ino*_*ani 0 mongodb express mongodb-atlas
我无法通过驱动程序、mongoshell 或 MongoDB 指南针连接到 MongoDB Atlas。获取错误: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' }
Run Code Online (Sandbox Code Playgroud)
我遵循了 mongodb atlas (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();
});
Run Code Online (Sandbox Code Playgroud)
用真实字符串值替换用户名和密码。我有强烈的感觉,原因是 +srv 部分。之前使用mlab的时候,连接只有mongodb://(没有+srv)
通过联系 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
Run Code Online (Sandbox Code Playgroud)
这些是您可以在集群的指标选项卡上看到的所有主机名(主要和次要)
小智 5
欣赏 David Buck 和 Abhay kumar:
此问题与网络连接有关。Wi-Fi 或其他有线连接没有获得完整的权限来传输或连接您的系统与 MongoDB 网络。解决方案:Mongodb 中的 IP 白名单,您需要在以太网 - IP V4 下的系统公共 DNS 中添加 8.8.8.8。
归档时间: |
|
查看次数: |
4050 次 |
最近记录: |