启动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个回答

1
为了解决在Ubuntu 16.04上无法启动mongodb的问题, 1)查看mongodb日志文件 enter image description here 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)使用systemctl启动服务,并使用netstat检查mongdob是否已在端口27017上启动。

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/


1

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

sudo service mongodb start

1
如果你遇到了这个问题,并且像我一样在卸载或升级过程中遇到了这个错误,而Ubuntu无法卸载以前的版本,因为该服务不存在,那么以下一行代码将帮助你解决这个问题并允许继续卸载或升级。
sudo touch /lib/systemd/system/mongod.service

1

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

那么您可能需要:

  • 首先删除旧的mongodb。
  • 删除旧数据,警告: 这可能会导致数据丢失。
    例如:sudo rm -r /var/lib/mongodb
  • 删除init脚本。
    例如: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的原因。
  • 在删除之前备份旧数据。

这是我遇到的问题。某个时候,我安装了随Ubuntu捆绑的MongoDB,但显然没有完全卸载它。这就是为什么我的新安装无法启动的原因。删除旧文件并重新安装非常顺利。 - FrankenCode

1

在我的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

第三步:现在运行以下命令:
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod

1

只需按照以下命令操作,这对我有效。

  1. Uninstall your mongo completely from your system:

    sudo service mongod stop
    sudo apt-get purge mongodb-org
    sudo rm -r /var/log/mongodb
    sudo rm -r /var/lib/mongodb
    
  2. Now reinstall mongodb using following commands:

    sudo apt update
    sudo apt install -y mongodb**
    

    Note: The database server is automatically started after installation.

  3. Next, let's verify that the server is running and works correctly.

    sudo systemctl status mongodb
    

    You'll see this output:

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

0

我遇到了类似的情况,出现了“无法启动mongod.service:找不到mongod.service单元”,随后是“initAndList NonExistentPath中的异常:未找到数据目录/data/db”

我的解决方案首先是将路径设置为配置文件,该配置文件具有自定义数据库位置,而不是“data/db”:

mongod --config /etc/mongodb.conf

然后我启用并启动了该服务,命令如下:

sudo systemctl enable mongodb.service

请注意,即使使用mongod,由于我当前使用的版本,我仍然需要添加“b”。但根守护程序保持不变。

0
请注意,如果使用Windows子系统来运行Linux,则不支持systemd,因此像systemctl这样的命令将无法工作:

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

请参见GitHub上的Blockers for systemd? #994,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

保存文件后,

按照安装文档中的步骤继续进行

这对我有效:


0
尝试这样做:sudo systemctl start mongod,要检查它是否正在运行,请使用sudo systemctl status mongod

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