为什么Mongo不读取/usr/local/mongodb/mongod.conf文件?

Sha*_*oon 10 macos mongodb

在我的/usr/local/mongodb/mongod.conf档案中,我有

# Store data alongside MongoDB instead of the default, /data/db/
dbpath = /usr/local/mongodb_data

# Only accept local connections
bind_ip = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行Mongo(在我的Mac上)时,我收到一个错误:

Wed Sep 14 09:29:35 [initandlisten] exception in initAndListen std::exception: dbpath (/data/db/) does not exist, terminating
Run Code Online (Sandbox Code Playgroud)

显然conf文件没有被读取

dav*_*c24 28

如果使用brew安装MongoDB ,则它为您生成的LaunchAgent文件将默认使用/usr/local/etc/mongod.conf中的配置文件.

此行为定义于:

https://github.com/Homebrew/homebrew/blob/master/Library/Formula/mongodb.rb

请注意,此"默认"仅适用于将MongoDB作为服务运行launchctl,而不是通过运行手动启动它mongodb.

自2015-03-09起,安装MongoDB 3.0.0后Homebrew提供的说明如下:

==> Caveats
To reload mongodb after an upgrade:
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
    mongod --config /usr/local/etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)

请注意--config手动运行命令中的显式参数.


Pet*_*gad 7

您必须指定是否要使用其他配置; 没有默认配置文件.

请参阅: 基于文件的配置

实现你想做的事; 您可以指定配置路径或启动您的mongo服务器,如:

mongod --dbpath /usr/local/mongodb_data
Run Code Online (Sandbox Code Playgroud)

  • OSX 10.10.2在以下位置找到了默认的配置文件:`usr/local/etc/mongod.conf` (9认同)
  • 是的,@MattJensen,但是,mongod 由于某种原因不使用它。我当前的 macOS 版本是 10.14.2 (2认同)