启动MongoDB 4.0服务失败,子进程退出错误码1
解决MongoDB 4.0启动子进程失败(退出码1)的问题
我之前也碰到过类似的MongoDB 4.0启动失败的情况,结合你给出的错误日志,咱们来一步步排查解决:
先处理日志里的TLS提示
日志里提到「自动禁用TLS 1.0,若要强制启用TLS 1.0请指定--sslDisabledProtocols 'none'」,如果你的业务确实需要启用TLS 1.0,可以直接在启动命令里加上这个参数试试,比如:
mongod --sslDisabledProtocols 'none'
要是不需要启用TLS 1.0,那这个只是个提示,真正的问题应该是导致子进程退出的其他原因。
排查子进程启动失败(退出码1)的常见原因
退出码1是MongoDB启动失败的通用错误码,通常有以下几种常见情况:
- 数据目录权限问题:MongoDB进程需要对数据目录(
dbPath)有读写权限。可以用下面的命令调整权限(替换成你的实际数据目录路径):chown -R mongodb:mongodb /var/lib/mongodb - 端口被占用:默认的27017端口可能被其他进程占用了,执行下面的命令检查:
如果发现端口被占用,要么杀掉占用进程,要么修改MongoDB的启动端口。# Linux系统 netstat -tulpn | grep 27017 # 或者用lsof工具 lsof -i :27017 - 配置文件错误:如果是通过配置文件启动(比如
mongod -f /etc/mongod.conf),检查配置文件里的参数是否正确,比如dbPath是否存在、bindIp是否设置合理、日志目录是否有写入权限等。 - 查看详细日志:启动时指定日志文件,能拿到更具体的错误信息:
打开日志文件后,里面会明确说明子进程启动失败的具体原因。mongod --logpath /var/log/mongodb/mongod.log --logappend
内容的提问来源于stack exchange,提问作者ashish chopade




