Ubuntu 18.04 LTS上MongoDB服务启动失败(状态码14)求助
问题排查与解决方案
一、针对systemctl启动mongod失败(退出码14)的排查步骤
既然手动执行/usr/bin/mongod --config /etc/mongod.conf能正常运行,说明MongoDB本身和配置文件是没问题的,问题大概率出在systemd服务单元的配置或运行环境上,退出码14通常和进程权限、PID文件目录相关,按以下步骤排查:
检查mongod的systemd服务文件
systemd管理的mongod服务配置通常在/lib/systemd/system/mongod.service(如果是自定义服务可能在/etc/systemd/system/mongod.service)。执行命令查看内容:cat /lib/systemd/system/mongod.service重点核对以下几项:
ExecStart:确认是否和你手动运行的命令一致,即/usr/bin/mongod --config /etc/mongod.confUser/Group:确认是否为mongodb(MongoDB默认运行用户)PIDFile:通常是/var/run/mongodb/mongod.pid,这个路径的目录需要mongodb用户有读写权限
修复PID文件目录的权限
如果/var/run/mongodb目录不存在或权限错误,mongod无法创建PID文件,会导致systemd判定启动失败。执行以下命令修复:sudo mkdir -p /var/run/mongodb sudo chown mongodb:mongodb /var/run/mongodb sudo chmod 0755 /var/run/mongodb然后重载systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart mongod查看systemd的详细启动日志
mongod.log可能只记录自身运行日志,systemd的日志能展示启动时的权限问题、进程退出信号等关键信息。执行命令查看:journalctl -u mongod -xe日志里会明确提示失败原因,比如权限不足、路径不存在等,根据提示进一步修复即可。
二、MongoDB的配置检查命令(类似nginx -t)
MongoDB从3.6版本开始提供了专门的配置文件验证命令,完全可以替代nginx -t的作用:
- 验证配置文件语法与有效性:
如果配置文件有语法错误或无效选项,会直接输出错误提示;如果配置正常则无输出。mongod --config /etc/mongod.conf --configCheck - 解析并输出最终生效配置:
也可以用--parseConfig选项来解析配置文件并打印最终生效的配置,同样能验证语法正确性:mongod --config /etc/mongod.conf --parseConfig
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

