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作为服务名,或者想升级到官方维护的新版本,可以按照以下步骤重新安装:
- 先停止并卸载现有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 - 导入MongoDB官方GPG密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - - 添加适配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 - 更新仓库并安装官方包:
sudo apt update sudo apt install -y mongodb-org - 现在就可以使用
mongod服务命令了:sudo systemctl enable mongod sudo systemctl start mongod sudo systemctl status mongod
内容的提问来源于stack exchange,提问作者GD- Ganesh Deshmukh
相关产品推荐
相关产品推荐

