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

我最近升级到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.

这只是缺少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 

由于新Ubuntu(15及之前)的问题而发生此错误。

默认的init系统是systemd ,之前是Upstart 。 因此,您需要安装Upstart,重新启动系统,现在您可以运行mongodb服务。

  • 安装Upstart

sudo apt-get install upstart-sysv

  • 重新启动系统

sudo service mongod start

mongod start/running, process 3371

我在ubuntu 15.10中使用了debian包

 echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list sudo apt-get update sudo apt-get install -y mongodb-org 

升级到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 : sudo rm /tmp/mongodb-27017.sock MongoDB的-3-0

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

那时候一切都很好,鲍勃回到了我叔叔的合法位置。

在我的情况下,我有Ubuntu 16.04.1,我正在安装MongoDB 3.2.11,我得到了同样的错误。 经过几次清理和重试后,它最终“启用”了服务:

 systemctl enable mongod.service 

然后就行了