如何在 Linux mongosh 命令行上指定数据库以及身份验证
How to specify a database on a Linux mongosh command line along with authentication
我有一个有点烦人的问题,应该是微不足道的,但我无法解决。我在 运行 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
我有一个有点烦人的问题,应该是微不足道的,但我无法解决。我在 运行 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