升级到Ubuntu 15.10后,MongoDB 3.0.2无法启动


14

我最近升级到Ubuntu 15.10,此后MongoDB 3.0.2无法启动。

$ sudo service mongod start

这会引发错误:

Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

Answers:


21

只是缺少systemd的服务文件。无需像Kartik那样回到暴发户,也无需使用https://docs.mongodb.org/manual/installation/中所述的其他存储库。

创建一个/lib/systemd/system/mongodb.service具有以下内容的文件:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target


我还要补充一点,您需要仔细注意数据目录,tmp fs锁和日志文件的文件所有权。我正在四处寻找解决方案,但sudo service...由于权限问题而默默地失败了
Hotbelgo

4
由于某种原因/etc/mongod.conf而不是调用默认配置文件/etc/mongodb.conf
mayyuhu

1
@mightyuhu是正确的,没有定义正确的路径,我会失败。使用正确的路径,我不会失败。
user1063287 '16

2
谢谢!这是正确的答案。一件事:服务名称应该是mongod因为这是他们在其官方网站上使用的名称。所以,mongodb.conf应该是mongod.conf 和文件名应该是/lib/systemd/system/mongod.service
caisah

12

发生此错误是由于新的Ubuntu(15及更高版本)存在问题。

默认的初始化系统是systemd,之前是Upstart。因此,您需要安装Upstart,重新启动系统,然后就可以运行mongodb服务了。

  • 安装新贵

sudo apt-get install upstart-sysv

  • 重新启动系统

sudo service mongod start

mongod start/running, process 3371


1
服务名称现在为mongodb
sowrov '16

@sowrov,不,最新的服务名称仍为“ mongod”
Clay Ferguson

1
在安装upstart-sysv并重新启动我的ubuntu 16.04之后,它变成空白;我必须进行恢复并将其删除。如果你想使用新贵保持这个线程可能会有所帮助askubuntu.com/questions/760615/...
jrgd


1

升级到15.10后,我遇到了类似的问题。

可能会有很多问题,但是根据导致问题的原因,您也许可以通过init.d使mongodb运行:

sudo /etc/init.d/mongodb start

这对我有用,但不是长期解决方案,因为您需要在每次重新启动后运行它,或者将其添加到启动任务中。所以我遵循以下内容:

1)按照“ sclausen”的说明创建服务文件。

2)通过运行以下命令重新加载服务:

sudo systemctl daemon-reload

3)跑了 sudo service mongodb start

4)该命令没有输出。所以我通过运行进行测试,mongo并得到一个套接字错误:

Error: connect ECONNREFUSED 127.0.0.1:27017 at Object.exports._errnoException (util.js:870:11) at exports._exceptionWithHostPort (util.js:893:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1062:14)

5)浏览日志tail -n 50 /var/log/mongodb/ ,发现潜在的错误:

2016-02-26T14:28:23.538+1100 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted

6)删除有问题的套接字文件: sudo rm /tmp/mongodb-27017.sock 如该线程上所建议:https : //stackoverflow.com/questions/29813648/failed-to-unlink-socket-file-error-in-mongodb-3-0

7)重新运行服务: sudo service mongodb start

那时一切都很好,鲍勃回到了我叔叔的正当位置。


0

就我而言,我有Ubuntu 16.04.1,正在安装MongoDB 3.2.11,并且遇到了同样的错误。经过几次清理和重试之后,它终于可以“启用”该服务:

systemctl enable mongod.service

然后就可以了

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.