我正在尝试连接到MongoLab数据库,但在连接时不断收到以下错误:
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }
我用来连接的代码是:
var mongoose = require("mongoose");
mongoose.connect("mongodb://username:[email protected]:61474/apitest");
mongoose.connection.on('error', function (err) {
console.log(err);
});
当我使用shell连接时,我没有任何问题。我究竟做错了什么?
使用mongoose连接mongo db时遇到了类似的问题。经过一段时间的探索,我发现mongoLab正在使用SCRAM-SHA-1身份验证。请参阅下面的问题我尝试将我的猫鼬升级到V4.1.11,然后它适用于我
我自己犯了这个错误,结果我做错了两件事(感谢Idos):
mongo --version
检查。按照this MongoDB page的说明将他们的密钥和存储库添加到您的APT源,以便升级并保持MongoDB安装更新。
我尝试将数据从区域设置导入到服务器时遇到了同样的问题。
这两个参数可能很重要,我把它们放在一起后就可以了:
--authenticationMechanism 'MONGODB-CR'
--authenticationDatabase "admin"
注意auth机制,可以是不同的机制。检查这部分文档:https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-authenticationmechanism