备注:我正在使用win10。 我的目标是Windows将mongodb作为具有身份验证启动的服务启动(您必须先进行身份验证才能进入数据库),但是我无法在Windows机器上做到这一点(在linux中有效) 我在这里写下尝试的步骤:
下载MongoDB
将conf从默认更改为以下
# mongod.conf
http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: C:\MongoDB\Server\4.0\data
journal:
enabled: true
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: C:\MongoDB\Server\4.0\log\mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
setParameter:
enableLocalhostAuthBypass: false
db.createUser( { 用户:“ ....”, pwd:“ ...”, 角色: [ {角色:“ root”,数据库:“ admin”} ] } )
sc.exe create MongoDB
binPath=“\”C:\MongoDB\Server\4.0\bin\mongod.exe\”
–service
config=\”C:\MongoDB\Server\4.0\bin\mongod.cfg\”” DisplayName= “MongoDB” start= “auto”
获得反馈成功。
但是当我重新启动计算机时,mongod无法启动,并且如果我未指定mongod --auth
,我仍然可以在没有身份验证的情况下进入
如何通过身份验证将Mongod作为服务运行?我究竟做错了什么?
当我尝试手动激活服务时,出现以下错误
Error photo
答案 0 :(得分:1)
安全标签存在问题。我想在Windows 10中启动服务时遇到相同的问题。我从Windows服务属性复制命令,然后在命令提示符下运行。
提示符向我显示错误:
无法识别的类别:安全性
我找到了解决方案,它是使用选项正确写入安全标签。
我猜YAML需要一些特定的输入。这是解决方案。
{{1}}
答案 1 :(得分:0)
我有同样的问题。
在mongodb.cfg中,使用2个空格(而不是TAB)缩进授权:已启用