如何在Windows机器上通过身份验证将Mongodb作为服务运行

时间:2019-05-13 10:13:37

标签: windows mongodb

备注:我正在使用win10。 我的目标是Windows将mongodb作为具有身份验证启动的服务启动(您必须先进行身份验证才能进入数据库),但是我无法在Windows机器上做到这一点(在linux中有效) 我在这里写下尝试的步骤:

  1. 下载MongoDB

  2. 将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

  1. 在Admin集合中创建一个Admin用户。

db.createUser(    {      用户:“ ....”,      pwd:“ ...”,      角色:        [          {角色:“ root”,数据库:“ admin”}        ]    } )

  1. 提供服务:
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

2 个答案:

答案 0 :(得分:1)

安全标签存在问题。我想在Windows 10中启动服务时遇到相同的问题。我从Windows服务属性复制命令,然后在命令提示符下运行。

提示符向我显示错误:

无法识别的类别:安全性

我找到了解决方案,它是使用选项正确写入安全标签。

我猜YAML需要一些特定的输入。这是解决方案。

{{1}}

答案 1 :(得分:0)

我有同样的问题。

在mongodb.cfg中,使用2个空格(而不是TAB)缩进授权:已启用