当我们使用systemctl start mongod
启动MongoDB数据时,报错如下
这里我们可以使用systemctl status mongod.service
命令查看详细错误信息,如下图
如果出现错误状态为status=14,那里主要原因就是文件权限问题,用户mongod没有对必需文件的写权限,导致数据库服务不能启动。
解决办法:
首先查看数据存储目录、日志目录,和/tmp下的*.sock(*是通配符)的文件这三个目录或文件的执行权限,可通过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
最后重新执行
#启动MongoDB服务
systemctl start mongod
#查看MongoDB服务状态
systemctl status mongod
启动成功
注意事项:
如果不是因为上面这个原因:
可通过配置文件启动(下下策)
mongod -f /etc/mongod.conf
其它原因可能有:
1、mongod.conf配置文件存在格式错误
2、或者通过上面方法查看具体错误状态再查找