mongo-shell - 如何在 Linux mongosh 命令行上指定数据库以及身份验证

标签 mongo-shell

我有一个有点烦人的问题,本来应该是微不足道的,但我无法弄清楚。我正在 Ubuntu Linux 系统(Focal)上运行;我有一个启用了身份验证的 mongo(版本 5.0.3)数据库。我找不到可以让我进入 mongo shell 来获取我想要的数据库的命令行。有人可以借我一点线索吗?

如果我发出命令 mongosh -u mongoAdmin -p '<password>' mongodb://127.0.0.1/我使用测试数据库进入 mongo shell。要获取我的数据库 db-name,我需要发出命令 use db-name .

如果我发出命令 mongosh -u mongoAdmin -p '<password>' mongodb://127.0.0.1/db-name我收到一条错误消息:

Current Mongosh Log ID: 617d0f78622b00d5095d474d
Connecting to:          mongodb://127.0.0.1/db-name?directConnection=true&serverSelectionTimeoutMS=2000
MongoServerError: Authentication failed.

我在管理数据库中配置的用户:

[
  {
    _id: 'admin.mongoAdmin',
    userId: UUID("6dbdd918-02c4-4000-b5e4-ff59db9f86ed"),
    user: 'mongoAdmin',
    db: 'admin',
    roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
    mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
  }
]

最佳答案

缺少的部分是我需要在命令行上指定身份验证数据库。该命令有效:

mongosh mongodb://127.0.0.1/db-name -u mongoAdmin -p '<password>' --authenticationDatabase admin

关于mongo-shell - 如何在 Linux mongosh 命令行上指定数据库以及身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69778370/

相关文章:

mongodb - 在 Mongo shell 中使用 undefined variable

mongodb - 如何修改 mongodb 中嵌套对象数组中的字段名称/键?

mongodb - 在 mongo shell 中将 Mongo 查询输出打印到文件

mongodb - 如何在 MongoDB 的子文档中添加一个额外的字段?

javascript - 获取 mongo shell BinData 作为字符串

MongoDB - 如何仅选择数字字符串/检查字符串在 mongo-shell 中是否为数字

mongodb - Mongo shell 给出错误 "Multiple occurrences of option"

MongoDB 奇怪的 writeResult 行为

mongodb - 是否有适用于 Windows 的 mongo shell 扩展?

mongodb - 如何在 MongoDB Shell 中定义别名?