无法启动mongod.service:找不到mongod.service单元。

无论出于什么原因,每当我尝试将MongoDB作为服务启动(sudo service mongod start),都会遇到以下错误:
无法启动mongod.service:找不到mongod.service单元。 我按照以下链接中提到的安装步骤进行操作 mongo db installation 失败。
system> sudo systemctl start mongodb
Failed to start mongodb.service: Unknown unit: mongodb.service

当我尝试运行sudo mongod时:
MongoDB shell version: 3.2.13 connecting to: - 
2017-06-03T16:19:28.513+0530 W NETWORK [thread1] 
Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: errno:111 Connection refused 
2017-06-03T16:19:28.514+0530 E QUERY [thread1] 
Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:229:14 @(connect):1:6 exception: connect failed

当我尝试运行 mongod --repair 命令时:
2017-06-03T16:32:35.514+0530 I CONTROL [initandlisten] 
MongoDB starting : pid=17423 port=27017 dbpath=/data/db 64-bit host=sid-Ideapad-Z570 2017-06-03T16:32:35.514+0530 I 
CONTROL [initandlisten] db version v3.2.13 [listen] target_arch: x86_64 2017-06-03T16:32:35.514+0530 I 
CONTROL [initandlisten] options: {} 2017-06-03T16:32:35.540+0530 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating

这个命令的输出是什么:ls /etc/systemd/system | grep mongo 输出是什么? - Ali Razmdideh
输出是mongodb.service - Siddharth Jain
你有这个文件吗?/usr/bin/mongod;如果你有的话,这个命令 sudo mongod 的输出是什么? - Ali Razmdideh
`MongoDB shell version: 3.2.13 connecting to: - 2017-06-03T16:19:28.513+0530 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: errno:111 Connection refused 2017-06-03T16:19:28.514+0530 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:229:14 @(connect):1:6exception: connect failed` - Siddharth Jain
1尝试运行mongod --repair然后再运行sudo mongod,这可能会有所帮助。 - Ali Razmdideh
还可以尝试执行以下命令:sudo rm /var/lib/mongodb/mongod.lock,然后执行 mongod --repair,最后执行 sudo mongod。请检查输出结果。 - Ali Razmdideh
2017-06-03T16:32:35.514+0530 I CONTROL [initandlisten] MongoDB starting : pid=17423 port=27017 dbpath=/data/db 64-bit host=sid-Ideapad-Z570 2017-06-03T16:32:35.514+0530 I CONTROL [initandlisten] db version v3.2.13 [listen] target_arch: x86_64 2017-06-03T16:32:35.514+0530 I CONTROL [initandlisten] options: {} 2017-06-03T16:32:35.540+0530 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating - Siddharth Jain
让我们在聊天中继续这个讨论 - Siddharth Jain
这个命令对你很有帮助:sudo mkdir -p /data/db && sudo chmod 755 /data/db && sudo chown -R mongod:mongod /data/db - Ali Razmdideh
找到了这个解决方法,不用重新安装就能修复问题。 http://nmp90.com/2017/05/failed-start-mongod-service-unit-mongod-service-not-found-ubuntu-16-04/ - C. Duggan
请编辑此问题,并将所需的细节放在问题本身的文本中,而不是隐藏在评论中。评论可以被删除,而且并不严格属于问答的一部分。 - user459652
尝试这个命令:sudo systemctl daemon-reload - Abhinav Anand
3个回答

我重新安装了mongod-org,因为我的数据仍然是安全的。
问题是当我运行sudo service mongod status时,我的系统找不到mongod.service。
运行这个命令修复了问题并恢复了服务。
sudo systemctl enable mongod

然后我只需要将我的正确配置复制到/etc/mongod.conf并运行。
sudo service mongod restart

9我试图启用mongod,但它显示“执行操作失败:没有这个文件或目录”。 - Mostafiz Rahman
只是提醒,这个方法适用于从mongodb仓库安装了mongodb社区版的情况。 - yeeking
尝试执行:sudo service mongodb status - Xonshiz

这对我有用。

  1. 完全从系统中卸载Mongo:

    sudo service mongod stop 
    sudo apt-get purge mongodb-org* 
    sudo rm -r /var/log/mongodb 
    sudo rm -r /var/lib/mongodb
    
  2. 现在使用以下命令重新安装MongoDB:

    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-get update
    sudo apt-get install -y mongodb-org
    

    要安装特定版本,请按照以下示例指定每个组件包以及版本号:

    sudo apt-get install -y mongodb-org=3.6.0 mongodb-org-server=3.6.0 mongodb-org-shell=3.6.0 mongodb-org-mongos=3.6.0 mongodb-org-tools=3.6.0
    
  3. 现在你可以看到mongod正在工作,但仍然存在同样的问题困扰着你。问题是当你运行sudo service mongod status时,系统找不到mongod.service。

    运行以下命令修复并恢复服务:

    sudo systemctl enable mongod
    
  4. 现在你已经准备好使用Mongo了。

    sudo service mongod restart
    

1我已经按照你的指南进行了操作,但是出现了以下错误:无法启用单元:单元文件mongod.service不存在。 @Akash Jain - alper
我按照这个步骤取得了成功,但在第三步时,我输入了sudo systemctl enable mongodb,而在第四步时,我输入了sudo systemctl start mongodb。请注意,在mongodb中出现了意外的b,而不是只有mongod。 - ArtHare

我也遇到了OP提到的确切问题,尽管我按照官方安装教程(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/)安装了Mongodb,
注意:在教程的第2步中(为Mongodb创建一个列表文件),重要的是要点击与您机器上的特定Ubuntu版本相关的选项卡。默认情况下显示Ubuntu 14.04,这会导致OP提到的问题(无法启动mongod.service: Unit mongod.service未找到)。
当我最终注意到在第2步中我必须正确选择Ubuntu 16.04(对我来说),安装成功后,mongod运行时没有任何问题。

谢谢,我也没有注意到版本选项卡!按照 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#uninstall-mongodb-community-edition 卸载了MongoDB社区版,然后再次安装了相应版本。 - Pete Montgomery