gpt4 book ai didi

Mongodb 身份验证不适用于配置文件

转载 作者:行者123 更新时间:2023-12-04 18:35:37 25 4
gpt4 key购买 nike

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

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

我可以通过身份验证访问

以下也适用

sudo 服务 mongod 启动但只有在配置文件(/etc/mongod.conf)中我才不设置授权:启用

当我添加 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:

最佳答案

有几个问题:

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

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

security:
authorization: enabled

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

第四,我使用的是 ubuntu 16,所以 sudo service mongod start 将不起作用。它需要通过 sudo systemctl start mongodb 来完成。 mongodb 文档中也没有正确提及这一点。

关于Mongodb 身份验证不适用于配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43103342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com