为什么mongodb不在乎我的配置文件是什么?

时间:2018-12-15 20:21:23

标签: mongodb ubuntu-18.04

我可以告诉mongod不尊重自己的默认配置文件,因为当我在终端中键入'mongod'时,我会看到

MongoDB starting : ... dbpath=/data/db ...

但是在我的/etc/mongodb.conf文件中

storage:
  dbPath: /home/ubuntu/data/db

所以看来mongod不在乎其默认配置文件中定义了什么?

(我知道我可以添加--config /etc/mongodb.conf,但我不明白为什么此配置文件按照定义是默认配置文件)

第二个问题,如果mongod不使用/etc/mongodb.conf-在某处有另一个配置告诉它将数据库路径放在/ data / db中(以便我可以更改它)-还是/ data / db很难-在mongod.exe的int main()中编码

第三个问题:如果是这样,这基本上意味着您在启动mongo时必须始终指定配置文件的路径吗?

第四个问题:如果在启动mongo时必须手动定义mongodb配置文件的路径,那么怎么可能都将mongo作为一种服务启动:

service start mongodb

是否还指定了用于服务的配置文件?

ps。我已经知道mongod --fork...。但是我试图避免大量输入,而只是使用了一个简单的服务器启动/停止/状态功能,其中一个配置文件受到了尊重。

谢谢

1 个答案:

答案 0 :(得分:1)

  

我正在努力避免输入大量内容,而只是具有一个简单的服务器启动/停止/状态功能以及一个受尊重的配置文件。

如果您run MongoDB as an service in Ubuntu,则/etc/mongod.conf的配置路径为included in the service definition。建议使用标准配置位置以一致的设置运行启动和停止MongoDB即服务。启动或停止服务时,无需包括任何其他参数;任何参数都应通过配置文件进行设置。

  

在我的/etc/mongodb.conf文件中

请注意,预期位置通常为/etc/mongod.conf(命名为与相应的服务器守护程序匹配)。在安装过程中,应创建一个默认操作系统的/etc/mongod.conf(假设您使用的是MongoDB提供的软件包)。

如果您是从其他来源(如Ubuntu Universe存储库)安装软件包的,则您的服务定义可能正在使用/etc/mongodb.conf,并且可能与MongoDB文档的默认设置不同。

  

所以看来mongod不在乎其默认配置文件中定义了什么?

如果从命令行启动mongod,则将使用default values for mongod options。与MongoDB 4.0一样,服务器二进制文件中没有默认的配置文件路径,但是默认的dbPath(在Linux上为/data/db)。

有一个相关的功能建议,您可以在MongoDB Jira问题跟踪器中观看/更新:SERVER-36150: Improved default config file handling