无法运行mongodump

Akh*_*hil 2 mongodb

我在我的mongoinstance上创建了两个具有以下角色的用户

use mydb
db.createUser(
  {
    user: "dbUser",
    pwd: "dbPassword",
    roles: [ { role: "dbOwner", db: "mydb" } ]
  }
)


use admin
db.createUser(
  {
    user: "adminUser",
    pwd: "adminPassword",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
Run Code Online (Sandbox Code Playgroud)

使用以上凭据启动和运行MongoDb,现在当我尝试在终端中使用以下命令获取mongodump时

mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,无法解决此问题

connected to: localhost:27017
assertion: 13 not authorized on admin to execute command { getParameter: 1, authSchemaVersion: 1 }
Run Code Online (Sandbox Code Playgroud)

任何的想法?我在哪里做错了?

Akh*_*hil 14

正如@wdberkeley所建议的那样,通过将db name作为参数传递来解决问题

下面的命令运行正常

mongodump --host localhost --port 27017 -u dbUser -p dbPassword -d mydb
Run Code Online (Sandbox Code Playgroud)


Din*_*aws 7

mongodump不是Mongo shell命令,它是一个操作系统命令.

就像你运行mongo.exe从操作系统提示符启动shell一样,你应该从操作系统提示符运行mongodump.例:

mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb
Run Code Online (Sandbox Code Playgroud)

谢谢