Auth失败,连接到MongoLab数据库时代码为18

时间:2016-01-04 14:31:47

标签: node.js mongodb mongoose mlab

我尝试连接到MongoLab数据库,但在连接时遇到以下错误:

{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }

我用来连接的代码是:

var mongoose = require("mongoose");

mongoose.connect("mongodb://username:password@ds061474.mongolab.com:61474/apitest");

mongoose.connection.on('error', function (err) {
    console.log(err);
});

当我使用shell连接时,我没有任何问题。我做错了什么?

3 个答案:

答案 0 :(得分:9)

使用mongoose连接mongo db时遇到了类似的问题。经过一段时间的探索,我发现mongoLab正在使用SCRAM-SHA-1身份验证。 请参阅下面的问题我尝试将我的猫鼬升级到V4.1.11,然后它适用于我

Authentication in mongoose using SCRAM-SHA-1

答案 1 :(得分:1)

我自己犯了这个错误,结果我做错了两件事(感谢Idos):

  1. 使用mongolab.com用户名而不是数据库用户名。
  2. 尝试使用通过Ubuntu存储库提供的2.6 shell连接到mongo 3.4数据库。 mongo --version要检查。
  3. 按照this MongoDB page中的说明将他们的密钥和存储库添加到您的APT源,以便升级并保持MongoDB安装不断更新。

答案 2 :(得分:0)

在尝试将数据从区域设置导入服务器时,我遇到了同样的问题。

这两个参数可能很重要,在我放置它们后就可以使用:

--authenticationMechanism 'MONGODB-CR' 
--authenticationDatabase "admin"

请注意auth机制,可以是其他机制。检查文档的此部分:https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-authenticationmechanism