在连接字符串中使用数据库名称时出现 Mongoose 连接错误

当我尝试使用此连接字符串连接到 Mongo 实例时

mongodb://root:password@localhost:27017/

但是,当我尝试在连接字符串中指定数据库名称时,一切正常

mongodb://root:password@localhost:27017/storefont

我收到以下错误 MongoDB Connection Error: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoError: Authentication failed.

stack overflow Mongoose connection error when using db name in connection string
原文答案
author avatar

接受的答案

像这样指定身份验证数据库:

mongodb://root:password@localhost:27017/storefont?authSource=admin

如果您指定一个数据库,那么默认情况下也会使用该数据库进行身份验证。 MongoDB 文档在该主题中不是 100% 清楚。

另见 Authentication failure while trying to save to mongodb


答案:

作者头像

Wernfield 提供的答案是正确的。我提供了一个小调整以及一个连接到副本集的示例:

使用 authSource 查询参数时,请确保连接字符串用单引号引起来,或者只使用 --authenticationDatabase 参数,

mongo mongodb://ip1:27017,ip2:27017,ip3:27017/my-db --authenticationDatabase admin -u myUsername -p myPassword

相关问题