mongod.cfg启用authorization后MongoDB服务崩溃无法启动如何解决
故障原因
两个问题直接导致启动失败:
- 配置文件格式错误:你写的
#security:带#注释前缀,这一行是完全不生效的,下一行顶格写的authorization: "enabled"不属于任何合法配置段,YAML格式对层级、缩进要求严格,非法配置会直接让MongoDB启动时解析配置失败崩溃。 - 执行启动命令权限不足:普通权限终端执行
net start操作系统服务会直接返回「访问被拒绝」,和配置本身无关。
修复操作
- 修正
mongod.cfg里的安全配置,删除security行前的#注释符,将authorization作为security的子配置项,保持正确缩进。
注意:YAML配置不支持Tab缩进,必须用空格控制层级,子配置项要比父配置项多缩进2个空格,否则会被识别为不同层级的配置,直接解析失败。
正确配置格式如下:
security: authorization: enabled
- 关闭当前普通权限终端,在开始菜单搜索「命令提示符」或「PowerShell」,右键选择「以管理员身份运行」,再执行服务启动命令:
net start MongoDB
- 如果修正配置、用管理员权限启动仍然失败,直接打开MongoDB默认日志路径
C:\Program Files\MongoDB\Server\<对应安装版本号>\log\mongod.log,最新的日志条目会明确标注启动失败的具体原因,对照调整即可。
验证配置生效
服务启动后,通过mongo shell连接实例,未携带认证信息执行数据库操作会返回权限错误,使用预先创建的管理员账号认证通过后可正常读写数据,即代表授权认证启用成功。
内容的提问来源于stack exchange,提问作者Naveed Ali Rehmani
相关产品推荐
相关产品推荐

