当前位置: 首页>>技术教程>>正文


MongoDB 2.6无法在Ubuntu 15.04上启动

, ,

问题描述

我在清洁安装的Ubuntu 15.04上运行installed MongoDB 2.6

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

它完成没有任何问题。但是,当我尝试启动它时,我收到以下错误:

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

我怎样才能解决这个问题?

最佳解决思路

我从debian wheeze repository安装,它工作正常。

首先确保删除mongodb-org包及其所有依赖项:

sudo apt-get purge mongodb-org
sudo apt-get autoremove

删除您创建的旧mongodb.list:

sudo rm /etc/apt/sources.list.d/mongodb.list

请改用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

之后,您可以成功启动服务器:

sudo service mongod start

要么

systemctl start mongod

(正如Ernie Hershey在回答Roman Gaufman的评论时所澄清的那样:https://jira.mongodb.org/browse/SERVER-17742)

次佳解决思路

MongoDB团队表示他们不支持Ubuntu 15.04并计划支持16.04(参见https://jira.mongodb.org/browse/SERVER-17742)。

Ubuntu 15.04将默认的init系统从Upstart推进到systemd。我没有成功使用systemd启动MongoDB 3.0。

您可以通过安装upstart-sysv切换回Upstart:

sudo apt-get install upstart-sysv

然后重新启动,MongoDB应该启动。

我希望找到一种在Ubuntu 15.04上运行MongoDB的简单方法,而无需及时切换。

第三种解决思路

您是从直接从mongodb.org发布的软件包安装的。您应该从Ubuntu存储库中提供的软件包进行安装。 Debian /Ubuntu软件包已经使用systemd服务单元进行修补,以填补mongodb.org留下的漏洞。

(在WWW上不乏mongodb.service单元文件。也不难写一个。我有。)

具体来说:你会在the mongodb-server version 2.6 package for Ubuntu version 15中找到such a service unit。所以只需安装该软件包。

(请注意,Debian /Ubuntu-supplied服务单元不适用于the mongo-recommended systemd service unit directives。)

进一步阅读

第四种思路

我创建了一个似乎适用于Ubuntu 15.04+和Mongo 3.0+的Systemd脚本:

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

确保在/etc/mongod.conf中设置数据目录

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1448.html,未经允许,请勿转载。