Mongodb身份验证无法从配置文件工作

Mongodb身份验证无法从配置文件工作,mongodb,ubuntu,service,Mongodb,Ubuntu,Service,我试图从配置文件中启用mongodb v3.4.3版中的身份验证,但它不起作用 以下工作: sudo mongod--auth--port 27017--dbpath/var/lib/mongodb 我可以通过身份验证进行访问 以下内容也适用 sudo服务mongod启动 但只有在配置文件(即/etc/mongod.conf)中,我才没有将authorization:enabled放入 当我添加authorization:enabled(如该版本的文档中所述)时,我无法再启动mongod。它给出

我试图从配置文件中启用mongodb v3.4.3版中的身份验证,但它不起作用

以下工作:
sudo mongod--auth--port 27017--dbpath/var/lib/mongodb

我可以通过身份验证进行访问

以下内容也适用

sudo服务mongod启动
但只有在配置文件(即/etc/mongod.conf)中,我才没有将authorization:enabled放入

当我添加authorization:enabled(如该版本的文档中所述)时,我无法再启动mongod。它给出了一个错误,表示我的数据库文件夹不存在,因此我假设配置文件已损坏,并且不再读取数据库文件夹位于/var/lib/mongodb中

如有任何建议,我们将不胜感激

这里是完整的配置文件(标准配置文件,除了我添加了授权)

ubuntu@ip-172-31-28-105:~$cat/etc/mongod.conf

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

#processManagement:

#security:
    authorization: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

mongodb配置文件是一个YAML文件。此外,您不能在mongodb的配置文件中使用选项卡始终使用空格。在配置文件中,您已经注释掉了安全参数。取消对它的注释,它可能会工作

将配置文件更改为

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

#processManagement:

security:
  authorization: enabled

#operationProfiling:

#replication:

#sharding:

#Enterprise-Only Options:

#auditLog:

#snmp:

mongodb配置文件是一个YAML文件。此外,您不能在mongodb的配置文件中使用选项卡始终使用空格。在配置文件中,您已经注释掉了安全参数。取消对它的注释,它可能会工作

将配置文件更改为

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

#processManagement:

security:
  authorization: enabled

#operationProfiling:

#replication:

#sharding:

#Enterprise-Only Options:

#auditLog:

#snmp:

有几个问题:

首先,在运行mongod时,必须始终声明配置文件。否则它将/data/db作为数据库文件夹。因此,运行它的方法是通过
mongod--config/etc/mongod.conf
,标准配置包含
dbPath:/var/lib/mongodb
作为数据库文件夹

其次,配置文件需要如下所示。保安前面的#需要移除

security:
  authorization: enabled
第三,为了使
start service mongod start
正常工作,有必要调整mongodb数据库文件夹中的权限,以便mongodb用户有权向他们进行写入(文档中没有这一点,但对于任何有足够经验的人来说,这可能是不言自明的)。这需要使用chown来完成,因为脚本将使用mongdb作为用户(不再使用sudo)


第四,我使用的是Ubuntu16,所以
sudo服务mongod
start无法工作。这需要通过
sudo systemctl start mongodb
完成。mongodb文档中也没有正确提到这一点。

有几个问题:

首先,在运行mongod时,必须始终声明配置文件。否则它将/data/db作为数据库文件夹。因此,运行它的方法是通过
mongod--config/etc/mongod.conf
,标准配置包含
dbPath:/var/lib/mongodb
作为数据库文件夹

其次,配置文件需要如下所示。保安前面的#需要移除

security:
  authorization: enabled
第三,为了使
start service mongod start
正常工作,有必要调整mongodb数据库文件夹中的权限,以便mongodb用户有权向他们进行写入(文档中没有这一点,但对于任何有足够经验的人来说,这可能是不言自明的)。这需要使用chown来完成,因为脚本将使用mongdb作为用户(不再使用sudo)


第四,我使用的是Ubuntu16,所以
sudo服务mongod
start无法工作。这需要通过
sudo systemctl start mongodb
完成。mongodb文档中也没有正确提到这一点。

你能给我们看一下
cat/etc/mongod.conf
?按要求在上面添加了它hmmmm,你能给我们看
cat/var/log/mongodb/mongod.log
?你能给我们看一下
cat/etc/mongod.conf
?按要求在上面添加了它hmmmm,你能给我们看看
cat/var/log/mongodb/mongod.log
?不起作用。当我运行mongod时,它似乎忽略了conf文件,并在错误的数据文件夹中查找。initAndListen中出现异常:未找到29 Data directory/Data/db.,终止运行命令sudo mongod或sudo service mongod start?我尝试了这两种方法。两者都失败了。但对于服务,在编辑conf文件之后,它不再写任何日志,所以我只做sudomongodtry做sudomongod-dbpath/var/lib/mongodb。开始服务时,我会更新答案。不起作用。当我运行mongod时,它似乎忽略了conf文件,并在错误的数据文件夹中查找。initAndListen中出现异常:未找到29 Data directory/Data/db.,终止运行命令sudo mongod或sudo service mongod start?我尝试了这两种方法。两者都失败了。但对于服务,在编辑conf文件之后,它不再写任何日志,所以我只做sudomongodtry做sudomongod-dbpath/var/lib/mongodb。对于启动服务,我将更新我们的回答。