验证失败,连接到 MongoLab 数据库时代码为 18
Auth failed, code 18 when connecting to MongoLab database
我正在尝试连接到 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 连接时,没有任何问题。我做错了什么?
我在使用 mongoose 连接 mongo 数据库时遇到了类似的问题。经过一段时间的探索后,我发现 mongoLab 正在使用 SCRAM-SHA-1 身份验证。
参考下面的问题我尝试将我的 mongoose 升级到 V4.1.11,然后它对我有效
我自己也有这个错误,结果我做错了两件事(感谢 Idos):
- 使用 mongolab.com 用户名而不是数据库用户名。
- 尝试使用 Ubuntu 的存储库提供的 2.6 shell 连接到 mongo 3.4 数据库。
mongo --version
进行检查。
按照 this MongoDB page 中的说明将他们的密钥和存储库添加到您的 APT 源中,以便升级并保持您的 MongoDB 安装不断更新。
我在尝试将数据从语言环境导入服务器时遇到了同样的问题。
这两个参数可能很重要,我输入它们后它起作用了:
--authenticationMechanism 'MONGODB-CR'
--authenticationDatabase "admin"
注意授权机制,可以是不同的。检查这部分文档:https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-authenticationmechanism
我正在尝试连接到 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 连接时,没有任何问题。我做错了什么?
我在使用 mongoose 连接 mongo 数据库时遇到了类似的问题。经过一段时间的探索后,我发现 mongoLab 正在使用 SCRAM-SHA-1 身份验证。 参考下面的问题我尝试将我的 mongoose 升级到 V4.1.11,然后它对我有效
我自己也有这个错误,结果我做错了两件事(感谢 Idos):
- 使用 mongolab.com 用户名而不是数据库用户名。
- 尝试使用 Ubuntu 的存储库提供的 2.6 shell 连接到 mongo 3.4 数据库。
mongo --version
进行检查。
按照 this MongoDB page 中的说明将他们的密钥和存储库添加到您的 APT 源中,以便升级并保持您的 MongoDB 安装不断更新。
我在尝试将数据从语言环境导入服务器时遇到了同样的问题。
这两个参数可能很重要,我输入它们后它起作用了:
--authenticationMechanism 'MONGODB-CR'
--authenticationDatabase "admin"
注意授权机制,可以是不同的。检查这部分文档:https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-authenticationmechanism