我在使用 Ubuntu 14.04.1 LTS。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
我不想使用系统提供的 MongoDB 2.4,而是想使用 2.6,所以我下载了 MongoDB 可执行文件并将其放在我想要的位置。然后我主要复制了 2.4 包附带的 upstart 脚本:
description "MongoDB"
start on runlevel [2345]
stop on runlevel [!2345]
limit nofile 64000 64000
kill timeout 300 # wait 300s between SIGTERM and SIGKILL.
pre-start script
mkdir -p /data/db/
end script
script
ENABLE_MONGODB="yes"
if [ -f /etc/default/mongodb ]; then
. /etc/default/mongodb
fi
if [ "x$ENABLE_MONGODB" = "xyes" ]; then
exec start-stop-daemon --start --quiet --chuid mongodb \
--exec /usr/local/bin/mongod -- --config /etc/mongodb.conf
fi
end script
当我像这样手动运行时:
sudo /usr/local/bin/mongod --config /etc/mongodb.conf
它运行得很好。
但是当我使用sudo start mongodb
该进程时,它可能会消失,因为我无法在中看到它ps -ef
。upstart 日志没有说明太多信息(/var/log/upstart/mongodb.log):
warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default
可能存在什么问题?
答案1
你说你这样做了:
我不想使用系统提供的 MongoDB 2.4,而是想使用 2.6,因此我下载了 MongoDB 可执行文件并将其放在我想要的位置。
这实际上不是您在系统上安装 MongoDB 的支持和推荐方式。MongoDB 团队非常清楚,官方 Linux 存储库并不总是与许多软件包的最新版本保持同步,因此他们为 MongoDB 提供了自己的 PPA,如下所述。我建议删除您刚刚安装的所有内容,然后按照以下步骤操作。
首先,导入包管理系统使用的公钥:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
然后为 MongoDB 创建一个源列表文件:
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
现在运行apt-get
以update
刷新源列表:
sudo apt-get update
最后,直接从存储库安装 MongoDB,如下所示:
sudo apt-get install -y mongodb-org