启用security.authorization时Mongodb启动错误

时间:2014-04-14 04:36:33

标签: macos mongodb

尝试通过security.authorization配置参数启用授权启动mongo时出错(请参阅http://docs.mongodb.org/manual/reference/configuration-options/#security.authorization

在运行mongod时我得到了

Error parsing INI config file: unknown option security.authorization
try 'mongod --help' for more information

有什么想法吗? 感谢

支持数据:

  • Mongo 2.6.0版(通过自制软件安装)
  • OSX Mavericks 10.9.2

启动命令:

mongod -f /usr/local/etc/mongod.conf

mongod.conf文件(如果我注释掉security.authorization则工作正常):

# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb

# Append logs to /usr/local/var/log/mongodb/mongo.log
logpath = /usr/local/var/log/mongodb/mongo.log
logappend = true

# Only accept local connections
bind_ip = 127.0.0.1

# auth
security.authorization = enabled
#security.authenticationMechanisms = MONGODB-CR  #error occurs with or without this

发生这种情况时,mongo.log文件中没有输入

2 个答案:

答案 0 :(得分:4)

注意:我会把它写成评论,但我还没有得分。

只是想知道你想要实现的是身份验证吗?如果是这种情况,您需要在mongodb.conf中设置的只有:

# auth
auth = true   # true or false. Whether or not authentication is required. 

- 更新:

其他一些重要的步骤:

配置数据库位置:mongodb.conf中设置为(您已经拥有此功能,但应检查目录和权限是否存在):

# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb

# Append logs to /usr/local/var/log/mongodb/mongo.log
logpath = /usr/local/var/log/mongodb/mongo.log
logappend = true

不要忘记确保上面的/usr/local/var/mongodb目录和/usr/local/var/log/mongodb/目录存在。您使用的安装程序可能没有使用它们。

为mongodb创建一个操作系统用户:(如果尚未创建一个 - 这是在linux上的方式,对osx不确定) - 以root身份:

adduser --system --no-create-home --disabled-login --disabled-password --group mongodb

如果文件夹尚未设置,请添加权限:

chown mongodb:mongodb -R /usr/local/var/mongodb

设置数据库用户授权/权限:

请参阅此处的命令参考:http://docs.mongodb.org/manual/reference/command/#database-commands

答案 1 :(得分:1)

MongoDB服务器配置文件格式已从版本2.6更改,但旧格式仍可正常工作。

http://docs.mongodb.org/manual/reference/configuration-options/

  

在2.6版中更改:MongoDB引入了基于YAML的配置文件格式。 2.4配置文件格式仍然是为了向后兼容。

错误是由于您的配置文件使用旧格式并使用新格式添加参数 security.authorization = enabled 的原因。您可以通过以下方式修复问题:  使用http://docs.mongodb.org/v2.4/reference/configuration-options

中提到的旧格式设置
  

auth = true

或将conf文件转换为新的YAML格式。