Mongodb Can';t在Mongo 3.6.8中添加管理员用户

Mongodb Can';t在Mongo 3.6.8中添加管理员用户,mongodb,authentication,Mongodb,Authentication,我试图在Mongo中添加一个管理员用户,但遇到了问题 我已经在/etc/mongodb.conf中注释了auth=true 运行Mongo时,我会按顺序运行以下命令: mongo use admin db.createUser({user:"admin",pwd:"password",roles:["root"]}); 这样做时,我会遇到以下错误: 2020-10-11T04:50:50.714+0000 E QUERY [

我试图在Mongo中添加一个管理员用户,但遇到了问题

我已经在
/etc/mongodb.conf
中注释了
auth=true

运行Mongo时,我会按顺序运行以下命令:

mongo

use admin

db.createUser({user:"admin",pwd:"password",roles:["root"]});
这样做时,我会遇到以下错误:

2020-10-11T04:50:50.714+0000 E QUERY    [thread1] Error: couldn't add user: there are
 no users authenticated :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1437:15
@(shell):1:1

如果我必须以管理员用户的身份登录,我不确定如何创建管理员用户。感谢您的帮助

要创建用户,您必须首先在
admin
数据库中有一个用户。因此,在创建用户时,您需要同时提供db名称和角色。尝试使用以下语法创建用户

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "password"
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)
参考文献-
您不必禁用身份验证。启用身份验证后,您仍然可以不使用用户名/密码登录MonogDB。但是,当您使用
userAdmin
userAdminAnyDatabase
角色创建第一个用户时,访问控制就会激活,您必须进行身份验证

这种行为称为


这是第一个尝试创建的用户吗?可能已经存在另一个管理员用户。另请参见

在将旧数据库导出为备份后,我刚刚放弃并重新使用了一个新数据库。

默认配置文件是
/etc/mongod.conf
(而不是
/etc/mongodb.conf
),请验证您在数据库启动时使用了正确的配置文件。注意,mongoDB配置文件中没有
auth
选项,请参阅我有mongoDB.conf文件,而不是mongod.conf。配置中是否指定了密钥文件?据我所知,我没有任何管理员用户,但我有一个数据库用户。如果我尝试使用该用户进行身份验证,它会在自己的数据库中工作,但都不是管理员,并且我得到了我提到的错误我是否使用该用户进行了身份验证。可能我有一个,但忘记了。。。有什么方法可以检查吗?当您禁用身份验证(并重新启动数据库)时,您应该能够看到所有用户。我不确定我是否能够禁用身份验证,因为我看到的所有说明都在
/etc/mongod.conf
中这样做,而我没有。我只有
mongodb.conf
,在里面禁用
auth=true
似乎没有任何效果:/如何启动数据库?通常使用这个命令可以指定conf文件,这就是问题所在。如果没有上述错误,我无法创建管理员用户。您是否尝试使用我提供的命令创建用户?我认为您无法创建用户,因为您使用的是
角色:[“root”]