我有一个有点烦人的问题,本来应该是微不足道的,但我无法弄清楚。我正在 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/