【问题标题】:How to specify a config file for Mongod process如何为 Mongod 进程指定配置文件
【发布时间】:2016-12-01 08:54:06
【问题描述】:

运行 mongod 时,我收到非严重错误

[HostnameCanonicalizationWorker] Failed to obtain address information for hostname flimflamjims-MacBook-Pro.local: nodename nor servname provided, or not known

这个问题在堆栈溢出上有很好的记录,解决方案通常建议编辑/etc/hosts 以指定地址127.0.0.1。这确实解决了这个问题,但是作为替代我想指定一个配置文件。

按照 Homebrew 的说明,我尝试运行 mongod --config /usr/local/etc/mongod.conf。运行命令后,进程挂起,没有日志打印到终端。

mongod.conf 由 Homebrew 自动创建,其内容为:

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1

当我从 /usr/local/var/log/mongodb/ 中删除 mongod.conf 并再次运行 mongod --config /usr/local/etc/mongod.conf 时,我收到错误:

Error reading config file: No such file or directory
try 'mongod --help' for more information`

所以看来mongod.conf 至少被访问了。

任何帮助将不胜感激。

【问题讨论】:

  • 如果您不想在文件中记录日志,请删除整个“systemLog”部分,因为在记录文件时会使用目标、路径和 logAppend 设置。如果您想在标准输出中登录,请从配置文件中删除所有这些。只是删除日志文件路径会引发错误。
  • 太棒了 - 非常感谢。是的,我误解了发生了什么;我错误地认为由于命令行上缺少输出而导致进程挂起,但实际上是因为日志被保存在上面指定的文件中。一旦我弄清楚如何将您的答案标记为“正确”,我就会这样做.

标签: mongodb config homebrew


【解决方案1】:

通过您的配置,日志将转到systemLog.path 中提到的日志文件。如果你只从配置文件中删除systemLog.path,它会抛出错误,因为它无法找到日志文件的路径。因为systemLog.destination 表示将日志记录到file,所以您还必须指定systemLog.path。如果您希望将日志发送到标准输出,则需要同时删除 systemLog.destination 和 systemLog.path。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-08
    • 2010-11-25
    • 2021-04-27
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多