4

我有一个指定备用端口的 mongo 配置文件:

deploy@ip-xxx-xxx-22-107 ~/app $ tail /etc/mongodb.conf
port = 27033

不是很复杂。我正在尝试使用基于文件的配置而不是命令行,这似乎是一个更好的主意。我在 Ubuntu 11 上。文档说:

在 MongoDB 的一些打包安装(例如 Ubuntu 和 Debian)上,可以在 /etc/mongodb.conf 中找到默认文件,从服务启动和停止 MongoDB 时会自动使用该文件

我绝对可以用 mongo 启动,sudo /etc/init.d/mongodb restart但它从错误的端口 27017 开始:

deploy@ip-xxx-xxx-22-107 ~/app $ sudo lsof -iTCP | grep mongo
mongod     3594   mongodb    5u  IPv4 260392       TCP localhost:27017 (LISTEN)
mongod     3594   mongodb    7u  IPv4 260395       TCP localhost:28017 (LISTEN)

所以有 mongo,但没有正确的端口。每当我尝试将配置文件传递给 mongodb 命令时,我都会收到错误消息:

 sudo /etc/init.d/mongodb -f /etc/mongodb.conf restart
 * ERROR: wrong args ( -f )

我怀疑该/etc/init.d/mongodb命令在启动 mongo 时没有传递我的配置请求。但是默认情况下应该根据文档读取配置文件。我的 Ubuntu 安装有问题吗(它在 PaaS 主机上)?使用没有优势,/etc/init.d/mongodb所以我应该忽略它吗?我可以让它通过读取配置文件,mongod -f /etc/mongodb.conf但我的文档说要使用/etc/init.d/mongodb.

4

1 回答 1

1

你从哪里安装 mongo 包?如果您是从默认存储库安装的,那么您可能有一个非常旧的版本 - 我刚刚在 11.04 上尝试过(手边没有 11.10,抱歉),我得到了非常旧的 1.6.4(截至撰写本文时的当前稳定版本是 2.0.2)。

您应该删除您拥有的版本,然后从 10gen/MongoDB 存储库中添加一个。这样做的说明在这里:

http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

这将为您提供最新的 mongod 版本并可能解决您的问题,因为您似乎在做正确的事情。

启动 mongod 后,连接到它并尝试运行:

use admin
db.runCommand({getCmdLineOpts: 1})

这应该为您提供所有传递和解析的选项。该命令的 Docs 页面上显示了一个示例输出。它应该允许您查看 mongod 指向配置文件的位置以及从中解析的内容。

于 2012-02-25T02:55:06.163 回答