MongoError - 身份验证错误(带@的密码)
Posted
技术标签:
【中文标题】MongoError - 身份验证错误(带@的密码)【英文标题】:MongoError - Authentication error (password with @) 【发布时间】:2019-12-16 07:04:27 【问题描述】:这是我的 NodeJS 应用程序中的代码,用于连接到我的 MongoDB 引擎:
const collection = 'mynewcollection';
const password = 'passwordwithan@';
const mongoUrl = `mongodb://admin:$encodeURIComponent(password)@mymongobase.net/$collection`;
// Connect using the connection string
MongoClient.connect(mongoUrl, useNewUrlParser: true, function(err, db)
console.log(err.toString())
);
我收到身份验证错误。我尝试了几种方法来处理“@”字符并阅读了我认为这是好的文档... 但即使用户和密码是好的,它仍然会失败。
API 是否正确使用?你明白哪里错了吗?
提前致谢。
【问题讨论】:
MongoDB password with "@" in it的可能重复 经过更多调查,@ 没有问题。事实上,当我尝试连接时,Mongo 并没有找到我的超级用户“admin”......如果我创建一个新用户并尝试连接它,就可以了。我不明白为什么当我尝试登录时无法识别超级用户(这似乎是我引擎的每个数据库所共有的)。 【参考方案1】:好的,我找到了解决方案。 如果你使用:
const mongoUrl = `mongodb://admin:$encodeURIComponent(password)@mymongobase.net/$collection`;
Mongo 将尝试使用 集合中定义的管理员/密码进行连接。
如果你不把集合放在mongo url中:
const mongoUrl = `mongodb://admin:$encodeURIComponent(password)@mymongobase.net`;
然后就可以使用所有mongo引擎上定义的超级用户了。
【讨论】:
以上是关于MongoError - 身份验证错误(带@的密码)的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB 通过 Mlab - MongoError:身份验证失败
MongoError:身份验证失败。 NestJs MongoDb 图集
(节点:32032)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):MongoError:身份验证失败