You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 17中Mongo Shell可用但mongod启动失败问题求助

解决Ubuntu 17中MongoDB服务名不匹配的问题

你遇到的核心问题是MongoDB服务名的差异——系统里实际运行的服务是mongodb,但你尝试操作的是mongod,所以才会出现"Unit file mongod.service does not exist"的错误。下面一步步帮你解决:

第一步:确认系统中实际存在的MongoDB服务

先运行这条命令,查看所有和Mongo相关的服务单元:

systemctl list-units --type=service | grep mongo

你应该会看到mongodb.service的条目,这说明你的系统里MongoDB的服务名是mongodb,而非官方新版常用的mongod。

第二步:正确设置开机自启

既然服务名是mongodb,直接用这个名称执行启用命令即可:

sudo systemctl enable mongodb.service

执行后如果没有报错,就说明已经成功设置开机自启。你可以用这条命令验证:

systemctl is-enabled mongodb

输出enabled就表示设置生效了。

为什么会出现这个差异?

这是因为不同的安装渠道会使用不同的服务名:

  • 如果你是通过Ubuntu官方软件仓库安装的MongoDB(通常是相对旧的版本),服务名默认是mongodb;
  • 如果你是从MongoDB官方网站添加源安装的新版MongoDB,服务名会是mongod。

而你能直接运行mongo命令进入Shell,只是说明MongoDB客户端已经正确安装,和服务端的服务名无关。

(可选)切换到官方新版MongoDB(使用mongod服务)

如果你更习惯使用mongod作为服务名,或者想升级到官方维护的新版本,可以按照以下步骤重新安装:

  1. 先停止并卸载现有MongoDB:
    sudo systemctl stop mongodb
    sudo apt remove --purge mongodb mongodb-server mongodb-clients
    sudo apt autoremove
    sudo rm -rf /var/lib/mongodb /etc/mongodb.conf
    
  2. 导入MongoDB官方GPG密钥:
    wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
    
  3. 添加适配Ubuntu 17.04的官方软件源:
    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu zesty/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
    
  4. 更新仓库并安装官方包:
    sudo apt update
    sudo apt install -y mongodb-org
    
  5. 现在就可以使用mongod服务命令了:
    sudo systemctl enable mongod
    sudo systemctl start mongod
    sudo systemctl status mongod
    

内容的提问来源于stack exchange,提问作者GD- Ganesh Deshmukh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:27:14