如何使用非默认dbpath运行Mongo DB作为服务?

8
当我尝试启动服务时,出现以下提示:
~$ sudo service mongodb start
mongodb start/running, process 20221

但实际上它并没有启动 ~$ sudo service mongodb status mongodb 停止/等待

这可能是因为我的dbpath不是默认的, 那么如何使用非默认dbpath启动服务呢?


1
MongoDB服务无法启动。答案是使用--dbpath开关或配置/etc/mongodb.conf - Pavel Veller
1
你还应该查看 /var/log/mongodb/mongodb.log,因为它应该显示启动错误消息。 - Mark Hillick
2个回答

8
这与“服务”没有什么关系,而是取决于mongod(MongoDB的进程名称)参数,可以使用除/data/db之外的dbpath。要查找可用的参数,只需运行$ mongod --help即可获得有用的参数列表,还有广泛的文档说明在启动mongod时可以使用的各种不同参数。

http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo

http://www.mongodb.org/display/DOCS/Command+Line+Parameters

来自文档中关于您问题的一点信息...

启动mongod

默认数据目录、默认端口。要以默认模式启动Mongo,其中数据将存储在/data/db目录(或Windows上的c:\data\db),并侦听端口27017,只需键入:

$ ./mongod

备用数据目录、默认端口

要指定Mongo存储文件的目录,请使用--dbpath选项:

$ ./mongod --dbpath /var/lib/mongodb/

请注意,您必须提前创建目录并设置其权限 - 如果不存在,Mongo不会创建该目录。

备用端口

您可以使用--port选项为Mongo指定另一个端口以便客户端连接:

$ ./mongod --port 12345

如果您想在一台机器上运行多个Mongo实例(例如,运行主从对),则这很有用。

作为守护进程运行

注意:这些选项仅适用于MongoDB版本1.1及更高版本。

这将分叉Mongo服务器并将其输出重定向到日志文件中。与--dbpath一样,您必须自己创建日志路径,Mongo不会为您创建父目录。

$ ./mongod --fork --logpath /var/log/mongodb.log --logappend


2
嗯,这个问题涉及到服务,所以这个答案有点离题。也许建议调整/etc/mongodb.conf会更好。 - Daniel F

6
您可以使用配置文件来指定它。
我在这里找到了解释:http://blog.ajduke.in/2013/04/10/install-setup-and-start-mongodb-on-windows/

使用配置文件

我们可以使用文件指定相同的命令行选项,而不是手动输入。这个文件被称为配置文件。配置文件就是一个普通的文件,以键=值的形式提供参数,并且每个参数占据文件的一行。我们通常将包含配置的文件路径作为“-f”或“--config”的命令行选项提供。以下是配置文件的代码片段:

shell > mongod --config I:\Servers\mongodb\config\mongodb.conf

您可以获得一个文件,其中您可以指定 dbpath:

#这是MongoDB的示例配置文件
#基本设置
dbpath = I:\Servers\mongodb\data
port = 27017
logpath = I:\Servers\mongodb\logs\mongo.log


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接