【问题标题】:Failed to start mongod.service: Unit mongod.service not foundmongod.service 启动失败:未找到 Unit mongod.service
【发布时间】:2018-06-14 00:16:48
【问题描述】:

我按照 Ubuntu 16.04 的 MongoDB 安装 documents 中提到的所有步骤进行操作。

步骤 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。

【问题讨论】:

标签: mongodb ubuntu ubuntu-16.04


【解决方案1】:

我的案例

安装后运行良好;这个问题是我重启后出现的。

对我有用的是

sudo mkdir /var/lib/mongodb 
sudo mkdir /var/log/mongodb 
sudo chown -R mongodb:mongodb /var/lib/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/lib/mongodb 
sudo chown -R mongodb:mongodb /var/log/mongodb 

第 3 步:

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

sudo systemctl start mongod

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

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

合十礼。 ?

【讨论】:

  • 这是唯一有效的方法。谢谢你,你拯救了一天,真是个天才
【解决方案2】:

我有 Ubuntu 20.04 我也遇到了同样的问题。

终于找到了有效的答案here

sudo dpkg --remove --force-remove-reinstreq mongo-tools
sudo dpkg --remove --force-remove-reinstreq mongodb-server-core

sudo apt-get purge mongodb mongodb-server mongodb-server-core mongodb-clients
sudo apt-get purge mongodb-org
sudo apt-get autoremove

然后通过官方docs重新安装。

虽然我可能会分享。 享受吧。

【讨论】:

    【解决方案3】:

    sudo systemctl unmask mongod

    上面的命令对我有用!

    sudo service mongod 启动

    取消屏蔽后尝试启动服务

    sudo systemctl status mongod

    使用上面的命令检查状态或简单地使用 mongo 命令启动 mongodb 服务器,我希望它可以工作。 干杯

    【讨论】:

      【解决方案4】:

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

      即使我有苏 - 要么 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

      编辑到是: PermitRootLogin 是

      重启 VPS

      然后写

      sudo systemctl restart mongodb
      

      瞧!

      如果这也没有帮助,因为您的 VPS 之前在 root 上启动了服务,您可能应该重新安装 VPS

      【讨论】:

      • 我不明白这是如何回答问题的,如果是权限问题,那么它应该给他一条错误消息,例如:Failed to restart mongod.service: Access denied See system logs and 'systemctl status mongod.service' for details.
      • 是的,是权限问题或者VPS启动问题发布服务
      【解决方案5】:

      试试:

      sudo /etc/init.d/mongodb status
      

      或:

      sudo /etc/init.d/mongodb start
      

      【讨论】:

        【解决方案6】:

        对于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
        • 在删除之前备份您的旧数据。

        【讨论】:

          【解决方案7】:

          它在 ubuntu 20.04 上对我有用:在我的情况下,mongod.service 文件被锁定,所以它给了我同样的错误。 要解决此问题:- 第 1 步:使用以下命令检查 mongod.service 是否存在

          cd /usr/lib/systemd/system
          ls
          

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

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

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

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

          【讨论】:

            【解决方案8】:

            我也遇到了同样的错误..我的错误是未满足依赖项/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
            

            成功了

            【讨论】:

              【解决方案9】:

              试试这个:sudo systemctl start mongod 并检查它的运行是否使用sudo systemctl status mongod

              【讨论】:

                【解决方案10】:

                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

                并保存文件,

                继续安装文档中的所有过程

                它对我有用:

                【讨论】:

                  【解决方案11】:

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

                  sudo systemctl restart mongodb.service
                  

                  【讨论】:

                    【解决方案12】:

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

                    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

                    【讨论】:

                      【解决方案13】:

                      根据documentation

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

                      sudo systemctl daemon-reload
                      

                      之后需要重启mongod服务:

                      sudo systemctl start mongod
                      

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

                      sudo systemctl status mongod
                      

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

                      sudo systemctl enable mongod
                      

                      【讨论】:

                        【解决方案14】:

                        嗯....我的回答可能被认为是幼稚的,但实际上它是 MongoDB 在我的情况下工作的唯一方式,Ubuntu 19.10。我尝试从投票最多的 cmets 运行命令,但运行时没有一个有效:

                        mongod --repair
                        

                        我收到此警报:

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

                        mongod --port 27018
                        

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

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

                        【讨论】:

                          【解决方案15】:

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

                          sudo systemctl unmask mongod

                          然后重新运行

                          sudo service mongod start

                          【讨论】:

                          • 返回:Unit mongodb.service does not exist, proceeding anyway.
                          • @alper 你需要启动mongod服务sudo service mongod start
                          • 一个重要的错字导致此答案无效。请更正。 Ubuntu 中正确的单元名称是 mongod 而不是 mongodb。所以取消屏蔽的正确命令是:sudo systemctl unmask mongod。感谢您的关注。
                          • 无论出于何种原因,我不得不在 Ubuntu 19.10 上说 mongodb 而不是 mongod
                          • 在 Ubuntu 18 上是 mongodb 而不是 mongod。
                          【解决方案16】:

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

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

                              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

                          【讨论】:

                          • 我会为那些在 2021 年及以后访问此页面的人增加精确度:不要使用 mongod,而是使用 mongodb
                          【解决方案17】:

                          你可以修复

                          $ 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
                          

                          【讨论】:

                            【解决方案18】:

                            对于那些遇到这个并最终得到这个答案的人,就像我一样,他们在卸载或升级期间遇到了这个错误,而 Ubuntu 一直未能卸载以前的因为该服务不存在这一行将帮助您完成此操作并允许继续卸载或升级。

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

                            【讨论】:

                              【解决方案19】:

                              只需按照以下命令。这对我有用。

                              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】:

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

                                第 1 步:首先,如果已安装 MongoDB,请从之前删除:

                                sudo apt remove --autoremove mongodb-org

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

                                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
                                

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

                                sudo apt-get update
                                

                                第 6 步:安装 MongoDB 包:

                                sudo apt-get install -y mongodb-org
                                

                                第 7 步:启动 MongoDB:

                                sudo service mongod start
                                

                                第 8 步:开始使用 MongoDB:

                                mongo
                                

                                希望对你有帮助。

                                【讨论】:

                                  【解决方案21】:

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

                                  sudo service mongodb start
                                  

                                  【讨论】:

                                    【解决方案22】:

                                    解决ubuntu 16.04无法启动mongodb的问题 1)查看mongodb日志文件

                                    2)我们发现错误是由于“Failed to unlink socket file /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/

                                    【讨论】:

                                      【解决方案23】:

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

                                      【讨论】:

                                        【解决方案24】:

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

                                        【讨论】:

                                          【解决方案25】:
                                          $service mongodb start
                                          $service mongodb status
                                          

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

                                          【讨论】:

                                            【解决方案26】:

                                            老是遇到同样的错误,google了几乎所有的安装方法都没有找到答案...

                                            我按照https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ 的说明进行操作,但不断收到错误无法启动 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。)

                                            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

                                            【讨论】:

                                              【解决方案27】:

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

                                              如果您正在关注官方文档并遇到上述错误,则表示您的机器上尚未启用 mongod.service(我说的是 Ubuntu 16.04)。您需要使用以下命令来执行此操作

                                              sudo systemctl enable mongod.service
                                              

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

                                              sudo service mongod start
                                              

                                              【讨论】:

                                              • 执行操作失败:没有这样的文件或目录:(
                                              • 即使systemctl list-unit-files --type=servicemongod 已经启用,这仍然有效。奇怪。
                                              【解决方案28】:

                                              [解决方案]

                                              只需输入

                                              sudo mongod
                                              

                                              它会起作用的。

                                              【讨论】:

                                              • 如果 Failed to enable unit: Unit file mongod.service does not exist. 仅当 perm 拒绝 mongo 时这将无济于事!
                                              • @JobinMathew,在 18.4 LTS 中运行良好
                                              • 适用于 16.04
                                              • 适用于 20.04 至
                                              【解决方案29】:

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

                                              连接总线失败:没有这样的文件或目录

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

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

                                              【讨论】:

                                                【解决方案30】:

                                                试试这个命令:

                                                $ sudo systemctl enable mongod
                                                

                                                【讨论】:

                                                  猜你喜欢
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 2017-04-04
                                                  • 1970-01-01
                                                  • 2021-02-16
                                                  相关资源
                                                  最近更新 更多