首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb身份验证无法从配置文件中运行

Mongodb身份验证无法从配置文件中运行
EN

Stack Overflow用户
提问于 2017-03-29 20:17:51
回答 2查看 3.3K关注 0票数 2

我试图通过配置文件在mongodb版本v3.4.3中启用身份验证,但它不起作用。

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

我可以通过认证访问

下面的工作也是如此

sudo service mongod start,但只有在配置文件(即/etc/mongod.conf)中,我没有设置授权:已启用

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

如有任何建议,敬请见谅。

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

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

代码语言:javascript
复制
# 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:
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-31 18:34:41

有几个问题:

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

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

代码语言:javascript
复制
security:
  authorization: enabled

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

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

票数 4
EN

Stack Overflow用户

发布于 2017-03-30 05:17:58

mongodb配置文件是YAML文件。此外,您不能在mongodb的配置文件中使用选项卡。总是使用空格。在配置文件中,您已经注释掉了安全性参数。取消评论,它可能会起作用

将配置文件更改为

代码语言:javascript
复制
# 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:
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43103342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档