MongoDB 手动准备 upstart 但未运行

MongoDB 手动准备 upstart 但未运行

我在使用 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-getupdate刷新源列表:

sudo apt-get update

最后,直接从存储库安装 MongoDB,如下所示:

sudo apt-get install -y mongodb-org

相关内容