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

时间:2018-01-04 09:35:25

标签: mongodb ubuntu mongodb-query mean-stack

我按照mongodb安装documents.

中提到的所有步骤进行操作

表示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时出现错误

"Failed to start mongod.service: Unit mongod.service not found." please help me to solve this.

30 个答案:

答案 0 :(得分:56)

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

sudo systemctl unmask mongodb

并重新开始

sudo service mongod start

答案 1 :(得分:28)

请按照以下步骤进行操作。

1 - 完全卸载当前安装

来源 - official instructions

sudo service mongod stop

删除包

sudo apt-get purge mongodb-org*

删除文件夹

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

2 - 按官方网站上的说明重新安装,我将写下所有步骤。 enter link description here

导入公钥

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

答案 2 :(得分:21)

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

如果您遵循的是官方文档,并且遇到上述错误,则表明您的计算机上尚未启用 mongod.service (我在谈论Ubuntu 16.04)。您需要使用以下命令进行操作

sudo systemctl enable mongod.service

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

sudo service mongod start

答案 3 :(得分:10)

我想你错过了'b'?

sudo service mongod start

应该是

sudo service mongodb start

我认为情况就是这样吗?

答案 4 :(得分:5)

试试这个命令:

$ sudo systemctl enable mongod

答案 5 :(得分:5)

<强> [解决]

输入

sudo mongod

它会起作用。

答案 6 :(得分: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

答案 7 :(得分:4)

根据documentation

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

sudo systemctl daemon-reload

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

sudo systemctl start mongod

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

sudo systemctl status mongod

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

sudo systemctl enable mongod

答案 8 :(得分:2)

$service mongodb start
$service mongodb status

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

答案 9 :(得分:2)

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

我按照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。)< / p>

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

答案 10 :(得分:2)

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

答案 11 :(得分: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

答案 12 :(得分:1)

在某些情况下,出于安全原因,该单元会被标记为 已屏蔽 。这是一个比禁用更强大的状态,在禁用状态下,您甚至无法手动启动服务。

要对此进行检查,请运行以下命令:

    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

答案 13 :(得分:1)

跟我一起来

安装后工作正常;重启后出现这个问题。

对我有用的是

sudo mkdir /var/lib/mongodb 
sudo mkdir /var/log/mongodb 
sudo chown -R mongodb:mongodb /var/log/mongodb 
sudo chown -R mongodb:mongodb /var/log/mongodb 

运行上述命令后打开一个新终端并运行:

sudo systemctl restart mongod

并运行 mongo shell 进行检查:

mongo

注意

<块引用>

如果这个问题再次出现(就像我每次重新启动时一样),请将其设置为在启动时运行的 shell 脚本。

永久解决方案(启动时的shell脚本)

第 1 步:

/etc/init.d 目录下创建一个文件

sudo gedit /etc/init.d/custom-mongo-fix.sh

第 2 步:

将以下代码放入您刚刚在步骤 1

中打开的文件中
#!/bin/bash

# mongodb fix
sudo mkdir /var/lib/mongodb 
sudo mkdir /var/log/mongodb 
sudo chown -R mongodb:mongodb /var/log/mongodb 
sudo chown -R mongodb:mongodb /var/log/mongodb 

第 3 步:

下次启动后,您可以通过以下方式正常启动 mongod 服务器:

sudo systemctl start mongod

说明: mongodb 需要以上两个文件夹,ownermongodb。当我们关闭/重新启动时,它们中的一个或两个都会被删除。因此,我们需要创建它们并更改它们的所有权。

编辑:每次关机前我都在使用 Stacer 的清洁工具。这也会删除日志文件和文件夹。因此,每次启动时都会出错。现在我取消选择 mongodb 选项,然后清理。

合十礼。 ?

答案 14 :(得分:1)

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

sudo systemctl restart mongodb.service

答案 15 :(得分:1)

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

mongod --repair

我收到此警报:

The first time I used MongoDB that error appeared

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

mongod --port 27018

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

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

答案 16 :(得分:1)

对于那些遇到此问题并最终得到此答案的用户,就像我所做的那样,在卸载或升级期间他们遇到此错误,并且Ubuntu一直未能卸载,因为该服务不存在这一行将带您过去,并允许继续进行卸载或升级。

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

答案 17 :(得分:1)

对于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

答案 18 :(得分:0)

您可以维修

$ sudo rm /var/lib/mongodb/mongod.lock
$ mongod --repair
$ sudo service mongodb start

停止

$ sudo service mongodb stop

重启-

$ sudo service mongodb restart

关于状态-

$ sudo service mongodb status

答案 19 :(得分:0)

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

  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**
    

答案 20 :(得分:0)

以下步骤帮助我解决了无法在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

希望它对您有帮助。

答案 21 :(得分:0)

我刚在鹦鹉操作系统上遇到了这个,这就是我解决它的方法。

sudo service mongodb start

答案 22 :(得分:0)

解决无法在ubuntu 16.04上启动mongodb的问题 1)看mongodb日志文件 enter image description here

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

enter image description here

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

答案 23 :(得分: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

并保存文件,

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

它对我有用:

答案 24 :(得分:0)

尝试以下操作:sudo systemctl start mongod,并检查其是否正在使用sudo systemctl status mongod

答案 25 :(得分:0)

对于 Ubuntu,如果您安装了旧的 mongodb(例如 3.x)。

那么您可能需要:

  • 先删除旧的 mongodb。
  • 删除旧数据,警告:这可能会导致数据丢失。
    例如sudo rm -r /var/lib/mongodb
  • 删除初始化脚本。
    例如sudo rm /etc/init.d/mongodb
  • 然后重新安装新的mongodb,(例如4.x)
    参考:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
  • 然后从 sudo service mongod start 开始。
  • 然后使用 sudo service mongod status 检查状态。

提示:

  • 不要使用sudo service mongodb start,还有一个额外的b,这是旧的mongodb,这就是我们使用sudo rm /etc/init.d/mongodb的原因。
  • 在删除之前备份旧数据。

答案 26 :(得分:0)

请注意,如果使用适用于Linux的Windows子系统,则不支持systemd,因此systemctl之类的命令将无效:

  

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

请参阅GitHub上的Blockers for systemd? #994,Microsoft / WSL。

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

答案 27 :(得分:0)

这是因为如果您关闭了 rootlogin,Ubuntu 或任何其他操作系统将无法正确处理系统文件。没错。即使您在文件系统上输入根目录。我知道这似乎不合逻辑,但这里全是 1 和 0。

即使我有 su - 要么 ssh root@934.2349.234243(随机 IP,不会在这里暴露自己:))

还是没有开始!

"Failed to restart mongodb.service: Unit mongodb.service not found."

那么……

您需要激活 root 登录。您可以下载 Cyber​​duck 或任何文件浏览器来快速找到该文件。

前往: /etc/ssh/

如果你不能使用软件工具,你可以使用上面的步骤: vi /etc/ssh/sshd_config 然后按 ctrl-c 写入控制台以保存它 :wq

更改这个名为 sshd_config 的文件: /etc/ssh/sshd_config

编辑为是: PermitRootLogin 是

重启 VPS

然后写

sudo systemctl restart mongodb

瞧! Tek sevdamız Türkiye

如果这也无济于事,因为您的 VPS 刚刚在根上启动服务,您可能应该重新安装 VPS

答案 28 :(得分:0)

试试:

sudo /etc/init.d/mongodb status

或:

sudo /etc/init.d/mongodb start

答案 29 :(得分:-1)

我也遇到了同样的错误..我的错误是未满足的依赖项/var/cache/apt/archives/mongodb-org-server_4.4.2_amd64.deb,我运行了这个:

sudo dpkg -i --force-all /var/cache/apt/archives/mongodb-org-server_4.4.2_amd64.deb

它奏效了