首页 > 解决方案 > 连接到 mongodb Atlas 的身份验证问题

问题描述

我想要完成的可能是有史以来最简单的事情。我只想使用 mongodb 驱动程序连接到 nodejs 中的 mongodb atlas 免费层 M0。我已经创建了一个免费帐户和集群。

这是我的简单代码:

const mongoclient = require('mongodb').MongoClient;

const URI = 'mongodb+srv://mohammed:mypassword@lebran-0qf7m.gcp.mongodb.net/test?retryWrites=true';

mongoclient.connect(URI, { useNewUrlParser: true }, (err, client) => {
    if(err) throw err;
    console.log('mongodb connected');
    db = client.db('mern');
})

这是我运行文件时发生的情况:

Mohammeds-MacBook-Pro:mern ahmed$ node server.js
/Users/ahmed/Projects/mern/server.js:13
    if(err) throw err;
            ^

Error: queryTxt ESERVFAIL lebran-0qf7m.gcp.mongodb.net
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:199:19)

我还使用以下命令尝试了 mongo shell:

mongo "mongodb+srv://lebran-0qf7m.gcp.mongodb.net/mern" --username mohammed

这是我得到的输出:

MongoDB shell version v4.0.6
Enter password: 
connecting to: mongodb://lebran-shard-00-00-0qf7m.gcp.mongodb.net.:27017,lebran-shard-00-01-0qf7m.gcp.mongodb.net.:27017,lebran-shard-00-02-0qf7m.gcp.mongodb.net.:27017/mern?gssapiServiceName=mongodb&ssl=true
2019-02-20T22:48:57.232+0300 E QUERY    [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:343:13
@(connect):1:6
exception: connect failed

我确定我输入的密码是正确的。我已经改变了几个,但没有一个工作。我将我的 IP 列为白名单。我也有一个管理员帐户。我能想到的所有先决条件。

我能够连接到本地服务器,但不能连接到 Atlas。这真的开始让我发疯了。

任何帮助是极大的赞赏...

**更新:我刚刚将我的应用程序部署到 heroku,你知道吗?它连接!虽然我无法使用我的电脑连接它。所以可能它与我的位置或我的连接,可能是位置有关。

标签: node.jsmongodb

解决方案


推荐阅读