启动mongod.service失败:找不到mongod.service单元。

123

我按照 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

第五步:

sudo service mongod start

当我开始使用MongoDB时出现了错误:

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


2
我也遇到了同样的问题,以下的答案是我唯一能用的:https://askubuntu.com/a/842599 - Ali Mousavi
35个回答

5

您可以进行修复。

$ 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

5

请尝试使用此命令:

$ sudo systemctl enable mongod

5
根据文档

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

sudo systemctl daemon-reload

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

sudo systemctl start mongod

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

sudo systemctl status mongod

为了确保 MongoDB 在系统重新启动后启动,运行以下命令:
sudo systemctl enable mongod

3

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

步骤三:导入软件包管理系统所使用的公钥:

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

步骤五:重新加载本地软件包数据库:
sudo apt-get update

第六步:安装MongoDB软件包:
sudo apt-get install -y mongodb-org

步骤七:启动MongoDB:

sudo service mongod start

步骤8:开始使用MongoDB:

mongo

希望它能帮到你。

3
也许您正在使用错误版本的mongodb列表文件。我曾经遇到过这个问题,但是我的错误在于没有选择适合Ubuntu 16.04的正确列表文件。默认选择的是Ubuntu 14.04的列表文件,这就是导致我的错误的原因:“无法启动mongod.service:Unit mongod.service未找到。”enter image description here

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


1
我将为那些在2021年及以后访问此页面的人添加精度:请使用mongodb,而不是mongod - vially

2
好的... 我的回答可能被认为是幼稚的,但实际上这是 MongoDB 在我的情况下工作的唯一方法,Ubuntu 19.10。我尝试运行最受欢迎的评论中的命令,但没有一个起作用,当运行时:
mongod --repair

我收到了这个警报:

The first time I used MongoDB that error appeared

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

“每次都对我很有帮助。长篇回答但是想在给出简单解决方案之前提供背景信息。”“(如果我做错了或者似乎不合逻辑,请告诉我!对我来说是相关的)”

2
我得到了同样的错误很长一段时间,尝试了几乎所有在谷歌上找到的安装说明,但仍然无法找到答案...
我按照https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/的说明进行操作,但仍然出现错误“Failed to start mongod.service: Unit mongod.service not found”。
我最初使用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)。
目标版本为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

如果你已经有了一些有用的数据,请不要删除你的数据库。只需运行以下命令即可。

sudo systemctl restart mongodb.service

1
这是因为如果你关闭了root登录,Ubuntu或其他任何操作系统都无法正常处理系统文件。即使你在文件系统上输入root,也是如此。我知道这似乎不合逻辑,但这里涉及到的都是1和0。即使我使用“su -”或“ssh root@934.2349.234243”(随机IP,这里不会暴露自己:)),它仍然没有启动!
"Failed to restart mongodb.service: Unit mongodb.service not found."

接下来...

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

前往: /etc/ssh/

如果您无法使用软件工具,请按以下步骤操作: vi /etc/ssh/sshd_config 然后按ctrl-c键 输入控制台以保存 :wq

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

将行编辑为yes: PermitRootLogin yes

重新启动VPS

然后写入

sudo systemctl restart mongodb

看这里!

如果这也没有帮助,可能是因为您的VPS在根目录上启动服务,您应该重新安装VPS。


1
我不明白这个回答如何解决问题,如果是权限问题,那么它应该给出一个错误消息,例如:“无法重新启动mongod.service:拒绝访问,请参阅系统日志和'systemctl status mongod.service'获取详细信息。” - Eyad Mohammed Osama
是的,这是一个权限问题或VPS启动问题导致服务无法正常运行。 - Bitfinicon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接