无法在Ubuntu 16.04 LTS上启动mongod.service

时间:2018-03-30 10:39:46

标签: mongodb nosql ubuntu-16.04

我已经在Ubuntu上安装了Mongodb但是不能启动它,我真的陷入了困境!我尝试了很多解决方案,但没有一个能为我工作。

任何帮助将不胜感激

当我运行启动命令

sudo service mongod start

它说:

Job for mongod.service failed because the control process exited with 

error code. See "systemctl status mongod.service" and "journalctl -xe" for details.

状态命令的输出是:

sudo systemctl status mongod.service
  

●mongod.service      已加载:已加载(/etc/init.d/mongod; bad;供应商预设:已启用)      有效:失败(结果:退出代码)自جمعه2018-03-30 15:00:56 +0430; 2s前        文档:man:systemd-sysv-generator(8)     处理:5500 ExecStart = / etc / init.d / mongod start(code = exited,status = 1 / FAILURE)

     

15:00:56 mahdi-HP-15-Notebook-PC mongod [5500]:而不是调用   通过/etc/init.d初始化脚本,使用service(8)

     

مارس30 15:00:56 mahdi-HP-15-Notebook-PC mongod [5500]:实用程序,例如   service mongod startمارس30 15:00:56 mahdi-HP-15-Notebook-PC   mongod [5500]:initctl:无法连接到Upstart:连接失败   to socket / com / ubuntu / upstart:

     

مارس30 15:00:56 mahdi-HP-15-Notebook-PC mongod [5500]:自从   您尝试调用的脚本已转换为

     

مارس30 15:00:56 mahdi-HP-15-Notebook-PC mongod [5500]:新贵工作,   你也可以使用start(8)工具,例如启动mongod

     

مارس30 15:00:56 mahdi-HP-15-Notebook-PC mongod [5500]:开始:无法使用   连接到Upstart:无法连接到套接字   / com / ubuntu / upstart:Co

     

مارس30 15:00:56 mahdi-HP-15-Notebook-PC systemd [1]:mongod.service:   退出控制流程,代码=退出状态= 1

     

مارس30 15:00:56 mahdi-HP-15-Notebook-PC systemd [1]:启动失败   mongod.service

     

مارس30 15:00:56 mahdi-HP-15-Notebook-PC systemd [1]:mongod.service:   单位进入失败状态。 مارس30 15:00:56 mahdi-HP-15-Notebook-PC   systemd [1]:mongod.service:结果'exit-code'失败。

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题。我按照official MongoDB community guide,在xubuntu 16.04工作站上安装MongoDB。该服务工作正常,直到我在安装后重新启动。

然后服务停止工作,它显示了您在问题中描述的行为。我注意到第一次重启后文件夹/var/log/mongodb消失了。手动创建后,我可以运行mongod,直到下次重新启动。

此问题的解决方案是更改文件/lib/systemd/system/mongod.service,以指示systemd创建此文件夹并在加载mongodb服务之前将其分配给用户mongod。只需在[Service]部分添加以下行:

ExecStartPre=/bin/mkdir -p /var/log/mongodb/
ExecStartPre=/bin/chown -R mongodb:mongodb /var/log/mongodb/  

然后你应该能够使用任何一个启动服务 sudo systemctl start mongod

sudo service mongod start

以下是基于官方指南执行安装的所有命令。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt update
sudo apt install -y mongodb-org

# this command performs the edit described above    
sudo sed -i 's/Group=mongodb/Group=mongodb\nExecStartPre=\/bin\/mkdir -p \/var\/log\/mongodb\/\nExecStartPre=\/bin\/chown -R mongodb:mongodb \/var\/log\/mongodb\//g' /lib/systemd/system/mongod.service

# enable and run the service
sudo systemctl enable mongod
sudo systemctl start mongod

# run mongo client and check the service
mongo --host 127.0.0.1:27017

以下是如何完全删除MongoDB(包含日志和数据库):

sudo apt purge mongodb-org*
sudo rm -r /var/lib/mongodb
sudo rm -r /var/log/mongodb