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



我有一个有点烦人的问题,应该是微不足道的,但我不能弄清楚。我使用的是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

相关内容

  • 没有找到相关文章

最新更新