Ubuntu20.04下MongoDB启用权限后启动失败及规范解决方法问询
问题原因
退出码14对应MongoDB的EXIT_NOPERM错误,核心是运行mongod服务的mongodb用户/组缺少必要的文件系统权限,常见场景包括:
- MongoDB默认数据目录(
/var/lib/mongodb)、日志目录(/var/log/mongodb)的所有者/组未设置为mongodb,或权限配置过严导致该用户无法读写 - 开启
security.authorization后,mongod需要读取的配置文件(/etc/mongod.conf)权限不足,mongodb用户无法访问 - 卸载重装后残留了旧的文件权限配置,覆盖了新安装时的正确权限
规范解决办法
无需修改/lib/systemd/system/mongod.service中的用户组配置,通过修复文件系统权限即可解决:
- 修复数据目录权限
sudo chown -R mongodb:mongodb /var/lib/mongodb sudo chmod -R 755 /var/lib/mongodb - 修复日志目录权限
sudo chown -R mongodb:mongodb /var/log/mongodb sudo chmod -R 755 /var/log/mongodb - 验证配置文件权限
确保配置文件允许mongodb用户读取:sudo chown root:mongodb /etc/mongod.conf sudo chmod 640 /etc/mongod.conf - 重新加载并重启服务
sudo systemctl daemon-reload sudo systemctl restart mongod - 检查AppArmor限制(Ubuntu默认启用)
如果AppArmor拦截了mongod的操作,重新加载其配置:sudo apparmor_parser -r /etc/apparmor.d/usr.bin.mongod
内容的提问来源于stack exchange,提问作者Holy semicolon
相关产品推荐
相关产品推荐

