无法启动 mongodb

无法启动 mongodb

我在 Ubuntu 上安装了 MongoDb,并能够使用 运行它sudo service mongod start。然后我不得不重新启动它,因为我更改了配置文件。现在我无法再次启动它。当我运行 时sudo service mongod start,它什么都不说(但我无法使用 连接mongo)。日志显示, 2018-06-06T18:45:49.279+0000 I STORAGE [initandlisten] exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /var/lib/mongodb, terminating

以下是权限: ubuntu@ip-172-31-24-92:~$ stat /var/lib/mongodb Access: (0755/drwxr-xr-x) Uid: ( 1000/ ubuntu) Gid: ( 116/ mongodb)

那么,我该如何再次运行它?

附加问题:如何使命令输出实际错误,这样我就不必每次都在日志中查找它?

PS:我是长期的 Windows 用户,刚刚开始学习 Linux。

答案1

首先,欢迎来到 Linux!

其次,我猜测在这种情况下 mongodb 以用户身份运行mongodb

如果是这种情况,那么用户 mongodb 需要写入目录的权限。

鉴于您当前的权限:所有者是ubuntu,可以rwx读取、写入和执行,而组是mongodb,只能r-x读取、执行。由于 mongodb 用户属于 mongodb 组,但不拥有该文件,因此它无法写入。

Access: (0755/drwxr-xr-x)  Uid: ( 1000/  ubuntu)   Gid: (  116/ mongodb)

要解决这个问题,要么让 mongodb 成为所有者 sudo chown mongodb:mongodb -R /var/lib/mongodb ,要么让组也写入 sudo chmod 775 -R /var/lib/mongodb

假设您使用标准方法在标准 Linux 系统上安装了 mongodb 服务器,则可能需要使用 systemctl(SystemD)或 service(upstart)命令重新启动服务。

SystemD:sudo systemctl restart mongodbsudo systemctl restart mongod

暴发户:sudo service mongod restart

如果你正在运行 SystemD,那么你可以使用以下命令检查服务状态

sudo systemctl status mongodb或者sudo systemctl status mongod

您可以使用以下方式查看服务日志

sudo journalctl -u mongodb或者sudo journalctl -u mongod

相关内容