遇到过多次这个问题, 在此记录一下.
网上查了很多, 但关于为什么原本好好的 mongo 会报此类错误的原因分析的文章并不多, 目前发现, 没有正确退出 mongo / mongo 配置文件修改错误 / 修改 mongo 配置文件后重启 等 都有可能导致 mongo 启动失败
出现错误状态为 status=14,那里主要原因就是文件权限问题,用户 mongod 没有对必需文件的写权限,导致数据库服务不能启动
首先查看数据存储目录、日志目录,和 /tmp 下的*.sock
(是通配符)的文件这三个目录或文件的执行权限,可通过 /etc 目录下的 mongod.conf 配置文件查
看目录的具体位置
1、数据存储目录 (dbpath) 的位置,该目录默认在 var/lib/mongo 下,执行如下命令修改目录权限(-R 递归处理所有文件和文件夹)
chown -R mongod:mongod /var/lib/mongo
2、再修改日志目录的权限,该文件默认在var/log/mongodb目录,命令如下
chown -R mongod:mongod /var/log/mongodb
3、最后还有一个文件需要开放用户mongod的写权限,该文件叫*.sock
(是通配符),在/tmp路径下。执行如下命令
代码中的*为通配符,表示合法文件名,我的文件全名是mongodb-27017.sock
chown mongod:mongod /tmp/*.sock
接着重新执行
systemctl start mongod
systemctl status mongod
systemctl restart mongod
若还是启动失败, 可尝试以下方法
删除lock文件
rm /var/lib/mongodb/mongod.lock
接着重启mongo
参考文章:
MongoDB启动报错 Process: 29784 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)