【发布时间】:2020-08-31 16:49:16
【问题描述】:
备注:我用的是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
- 在 Admin 集合中创建一个 Admin 用户。
db.createUser( { 用户:“....”, 密码:“...”, 角色: [ {角色:“根”,数据库:“管理员”} ] } )
- 使它成为一项服务:
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
【问题讨论】:
-
您可以在任务计划程序中创建一个任务,并将您的批处理文件作为 Windows 服务
-
是的,使用任务调度程序是一个选项,但我更喜欢避免它,并使用身份验证作为服务运行它