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


76

我按照所有的步骤提MongoDB的安装文件进行Ubuntu 16.04

步骤1:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

步骤2:

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

步骤3:

sudo apt-get update

步骤4:

sudo apt-get install -y mongodb-org

步骤5:

sudo service mongod start

当我启动MongoDB时,出现以下错误:

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


2
我有同样的问题,以下答案是唯一对我
有用的

Answers:


102

很有可能单位mongodb.service被屏蔽了。使用以下命令取消屏蔽它。

sudo systemctl unmask mongod

然后重新运行

sudo service mongod start


6
如果您不向我们解释您的问题,@ Ilan我们将为您提供帮助。简单地说“不为我工作”并没有帮助。
Jehanzeb.Malik

4
返回:Unit mongodb.service does not exist, proceeding anyway.
alper

4
正确的命令是:sudo systemctl unmask mongod && sudo service mongod start
forkie

3
一个重要的错字导致此答案不起作用。请更正。在Ubuntu中,正确的单位名称mongod不是mongodb。因此取消屏蔽的正确命令是:sudo systemctl unmask mongod。感谢您的关注。
mahyard

3
无论出于什么原因,我不得不说mongodb而不是mongod在Ubuntu 19.10上。
丹尼尔·

43

请按照以下步骤操作。

1-完全卸载当前安装

资料来源-官方指示

sudo service mongod stop

删除包裹

sudo apt-get purge mongodb-org*

删除文件夹

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

2-按照官方网站上的说明重新安装,我将写下所有步骤。在此处输入链接说明

导入公钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

为Ubuntu 16.04创建列表文件

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

3-现在应该可以了,请尝试以下命令

sudo service mongod start

并检查状态

mongo

它应该出现mongo shell


5
对于没有重新安装的未来读者,此AskUbuntu答案是更好的解决方案。目前尚不清楚此答案和OP的尝试有什么区别,因为两者都指向相同的指令链接。
冻糕'18

如果将@Parfait的评论纳入答案,那就太好了。为我节省了不可思议的时间。
菲利普·马丁

它起作用了,我认为问题是我没有安装正确的ubuntu版本(请使用进行检查lsb_release -a
Albert James Teddy

为我工作。谢谢!
WOUT

41

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

如果您遵循的是官方文档,并且遇到上述错误,则意味着您的计算机上尚未启用mongod.service(我说的是Ubuntu 16.04)。您需要使用以下命令执行此操作

sudo systemctl enable mongod.service

现在您可以使用以下命令启动mongodb

sudo service mongod start

5
无法执行操作:没有这样的文件或目录:(
Mithun GS

即使systemctl list-unit-files --type=servicemongod已经启用,此方法仍然有效。奇怪。
克里斯蒂安·马克斯

34

我想您错过了“ b”吗?

sudo service mongod start

应该

sudo service mongodb start

我认为是这样吗?


6
运行“ sudo systemctl unmask mongodb”后,其工作:)
Rahul

3
在ubuntu 18.04上,如果您是从系统存储库中安装的,则mongodb不是mongod
qed


6
$service mongodb start
$service mongodb status

当我开始使用上述命令时,状态为活动



5

对于Ubuntu 16.04.5,注意到在我安装了多台服务器之后,在我的情况下,MongoDB安装不会在安装后自动启用mongod.service文件,因此我们需要如下启用它:

下面的问题检查mongod是否已启用

systemctl list-unit-files --type=service

如果显示为“禁用”,则需要启用它。

sudo systemctl enable mongod.service

如果我们想查看mongod.service文件是否存在以防丢失,请签入

ls /lib/systemd/system

您会看到一个文件

/lib/systemd/system/mongod.service

4

根据文档

运行以下命令以重新加载守护程序:

sudo systemctl daemon-reload

之后,您需要重新启动mongod服务:

sudo systemctl start mongod

要验证MongoDB已启动,请运行:

sudo systemctl status mongod

为了确保MongoDB将在系统重新启动后启动,请运行:

sudo systemctl enable mongod

4

这是我在管理数据库中添加用户时发生的。

sudo systemctl daemon-reload 

是从mongo官方网站推荐的,但没有帮助。

如果你得到

mongod.service的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参见“ systemctl status mongod.service”和“ journalctl -xe”。

执行时

sudo systemctl start mongod

运行journalctl -xe,如果问题是

Failed to start MongoDB Database Server.
-- Subject: Unit mongod.service has failed

然后运行sudo mongod->mongo 这将解决问题,如果要使用systemctl,请终止mongod和mongo的窗口并运行

sudo systemctl start mongod 

然后 mongo


3

在某些情况下,出于安全原因,该单元将被标记为已屏蔽。此状态比禁用状态要强大得多,在禁用状态下,您甚至无法手动启动服务。

要检查这一点,请运行以下命令:

    systemctl list-unit-files | grep mongod

如果您发现类似以下内容:

    mongod.service                         masked

那么您可以通过以下方式取消对设备的遮罩:

    sudo systemctl unmask mongod

那么您可能要启动该服务:

    sudo systemctl start mongod

并在系统引导期间启用自动启动:

    sudo systemctl enable mongod

但是,如果mongodb不再重新启动或完全没有被屏蔽,则可以选择以这种方式重新安装它:

    sudo apt-get --purge mongo*
    sudo apt-get install mongodb-org

感谢@ jehanzeb-malik


2

我很长一段时间都遇到了同样的错误,在Google上尝试了几乎所有安装istruciton,但找不到答案...

我遵循了https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/中的说明,但始终收到错误无法启动mongod.service:未找到单元mongod.service

我首先使用以下命令进行安装:sudo apt-get install -y mongodb-org然后注意到我在运行:

$ sudo apt-get install -y mongodb-org
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  mongodb-org-mongos mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed
  mongodb-org mongodb-org-mongos mongodb-org-shell mongodb-org-tools
0 to upgrade, 4 to newly install, 0 to remove and 46 not to upgrade.
Need to get 0 B/40.1 MB of archives.
After this operation, 178 MB of additional disk space will be used.
Selecting previously unselected package mongodb-org-shell.
(Reading database ... 379307 files and directories currently installed.)
Preparing to unpack .../mongodb-org-shell_4.0.3_amd64.deb ...
Unpacking mongodb-org-shell (4.0.3) ...
Selecting previously unselected package mongodb-org-mongos.
Preparing to unpack .../mongodb-org-mongos_4.0.3_amd64.deb ...
Unpacking mongodb-org-mongos (4.0.3) ...
Selecting previously unselected package mongodb-org-tools.
Preparing to unpack .../mongodb-org-tools_4.0.3_amd64.deb ...
Unpacking mongodb-org-tools (4.0.3) ...
Preparing to unpack .../mongodb-org_4.0.3_amd64.deb ...
Unpacking mongodb-org (4.0.3) ...
Setting up mongodb-org-shell (4.0.3) ...
Setting up mongodb-org-mongos (4.0.3) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Setting up mongodb-org-tools (4.0.3) ...
Setting up mongodb-org (4.0.3) ...


$ mongod --version
db version v2.6.12
2018-10-26T12:03:12.362+0200 git version: d73c92b1c85703828b55c2916a5dd4ad46535f6a

数据库版本是2.6.12,而不是最新的4.0.3。因此,请确保您尚未安装mongodb-org-server,如果是,则请确保将其更新到目标版本(如@ https://docs.mongodb.com/manual/tutorial/install-mongodb-on所示) -ubuntu / ->步骤4-安装特定版本的MongoDB。

target_version = 4.0.3

sudo apt-get install -y mongodb-org = target_version mongodb-org-server = target_version mongodb-org-shell = target_version mongodb-org-mongos = target_version mongodb-org-tools = target_version

$ sudo apt-get install -y mongodb-org=4.0.3 mongodb-org-server=4.0.3 mongodb-org-shell=4.0.3 mongodb-org-mongos=4.0.3 mongodb-org-tools=4.0.3
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed
  mongodb-org mongodb-org-mongos mongodb-org-shell mongodb-org-tools
The following packages will be upgraded:
  mongodb-org-server
1 to upgrade, 4 to newly install, 0 to remove and 45 not to upgrade.
Need to get 15.7 MB/55.8 MB of archives.
After this operation, 217 MB of additional disk space will be used.
Get:1 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0/multiverse amd64 mongodb-org-server amd64 4.0.3 [15.7 MB]
Fetched 15.7 MB in 2s (6,289 kB/s)                 
Selecting previously unselected package mongodb-org-shell.
(Reading database ... 379306 files and directories currently installed.)
Preparing to unpack .../mongodb-org-shell_4.0.3_amd64.deb ...
Unpacking mongodb-org-shell (4.0.3) ...
**Preparing to unpack .../mongodb-org-server_4.0.3_amd64.deb ...
Failed to stop mongod.service: Unit mongod.service not loaded.
invoke-rc.d: initscript mongod, action "stop" failed.
dpkg: warning: old mongodb-org-server package pre-removal script subprocess returned error exit status 5
dpkg: trying script from the new package instead ...
dpkg: ... it looks like that went OK
Unpacking mongodb-org-server (4.0.3) over (2.6.12) ...**
Selecting previously unselected package mongodb-org-mongos.
Preparing to unpack .../mongodb-org-mongos_4.0.3_amd64.deb ...
Unpacking mongodb-org-mongos (4.0.3) ...
Selecting previously unselected package mongodb-org-tools.
Preparing to unpack .../mongodb-org-tools_4.0.3_amd64.deb ...
Unpacking mongodb-org-tools (4.0.3) ...
Preparing to unpack .../mongodb-org_4.0.3_amd64.deb ...
Unpacking mongodb-org (4.0.3) ...
Processing triggers for ureadahead (0.100.0-20) ...
Setting up mongodb-org-shell (4.0.3) ...
Setting up mongodb-org-mongos (4.0.3) ...
Processing triggers for systemd (237-3ubuntu10.3) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Setting up mongodb-org-tools (4.0.3) ...
Setting up mongodb-org-server (4.0.3) ...
Installing new version of config file /etc/mongod.conf ...
Setting up mongodb-org (4.0.3) ...

在完成此操作之后,对我来说都是:D


2

可能是您使用了错误版本的mongodb列表文件。我遇到了这个问题,但是当没有为Ubuntu 16.04选择正确的列表文件时,这是我的错误。默认选择为Ubuntu 14.04,这是我的错误的原因:“无法启动mongod.service:未找到Unit mongod.service。” 在此处输入图片说明


2

以下步骤帮助我解决了无法在Ubuntu Server 18.04 LTS上启动mongodb的问题

步骤1:首先,从以前的版本中删除MongoDB(如果已安装):

sudo apt remove --autoremove mongodb-org

第2步:删除所有mongodb回购列表文件:

sudo rm /etc/apt/sources.list.d/mongodb*.list
sudo apt update

步骤3:导入包管理系统使用的公钥:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

步骤4:为MongoDB创建一个列表文件:

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

步骤5:重新加载本地包数据库:

sudo apt-get update

步骤6:安装MongoDB软件包:

sudo apt-get install -y mongodb-org

步骤7:启动MongoDB:

sudo service mongod start

步骤8:开始使用MongoDB:

mongo

希望对您有帮助。



2

它在ubuntu 20.04上对我有用:就我而言,mongod.service文件已锁定,因此给了我同样的错误。解决此问题的方法:-步骤1:使用以下命令检查mongod.service是否存在

cd /usr/bin/systemd/system
ls

步骤2:如果该文件存在,则运行以下命令来解锁文件mongod.service

sudo chmod 777 /usr/bin/systemd/system/mongod.service -R

步骤3:现在运行以下命令:

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod

1

解决无法在ubuntu 16.04上启动mongodb的问题1)查看mongodb日志文件 在此处输入图片说明

2)我们发现错误是由于“无法取消套接字文件/ tmp / mongodb-27017的链接”引起的

3)查看文件/tmp/mongdb-27017.lock的许可权,发现所有者是root而不是mongodb

4)手动删除/tmp/mongodb-27017.sock文件,并使用命令“ sudo chown mongodb:mongodb / tmp / mongodb *”

5)使用systemcl启动服务,并使用netstat检查在端口27017上是否已启动mongdob

在此处输入图片说明

信用:https : //www.mkyong.com/mongodb/mongodb-failed-to-unlink-socket-file-tmpmongodb-27017/ https://hevodata.com/blog/install-mongodb-on-ubuntu/



1

只需遵循以下命令。这对我有用。

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

    注意:安装后,数据库服务器将自动启动。

  3. 接下来,让我们验证服务器是否正在运行并且可以正常工作。

    sudo systemctl status mongodb
    

    您将看到以下输出:

    mongodb.service - An object/document-oriented database
    Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
    Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
    Docs: man:mongod(1)
    Main PID: 2312 (mongod)
    Tasks: 23 (limit: 1153)
    CGroup: /system.slice/mongodb.service
       └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf**
    

1

对于那些遇到此问题并最终得到此答案的用户,就像我所做的那样,在卸载或升级过程中他们遇到此错误,而Ubuntu仍然无法卸载先前的版本,因为该服务不存在,这一行将使您超越并允许卸载或升级以继续。

sudo touch /lib/systemd/system/mongod.service

1

好吧....我的回答可能被认为是幼稚的,但实际上这是MongoDB在我的情况下(Ubuntu 19.10)工作的唯一方式。在运行时,我尝试从投票最多的注释中运行命令,但没有一个起作用:

mongod --repair

我收到此警报:

我第一次使用MongoDB时会出现此错误

通过一些研究,我发现在另一个端口上运行数据库可能是一个解决方案,然后:

mongod --port 27018

每次都对我有用。答案很长,但是想在给出这样一个简单的解决方案之前先给出背景。

(如果我做错了或看起来不合逻辑,请告诉我!与我相关)


1

如果已经发现有用的数据,请不要删除数据库。只需运行下面的命令,您就很好。

sudo systemctl restart mongodb.service

0

请注意,如果将Windows子系统用于Linux,则不支持systemd,因此类似的命令systemctl将不起作用:

无法连接到总线:没有这样的文件或目录

查看systemd的拦截器?#994GitHub,Microsoft / WSL上的。

mondgod当然,仍然可以通过手动启动mongo服务器进行开发。


0

mongo安装的第二步是

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

代替手动执行此命令

  1. cd /etc/apt/
  2. nano sources.list
  3. 写下来 deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse

并保存文件,

按照安装文档中的说明继续所有过程

这个对我有用:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.