Почему Монго не читает файл /usr/local/mongodb/mongod.conf? - PullRequest
10 голосов
/ 14 сентября 2011

В моем /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

Но когда я пытаюсь запустить Mongo (на моем Mac), я получаю ошибку:

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

Так что, очевиднофайл conf не читается

Ответы [ 4 ]

28 голосов
/ 30 августа 2012

Если вы устанавливаете MongoDB с использованием brew , файлы LaunchAgent, которые он сгенерирует для вас, по умолчанию будут использовать файл конфигурации в /usr/local/etc/mongod.conf.поведение определяется в:

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

Обратите внимание, что это «значение по умолчанию» применяется только при запуске MongoDB в качестве службы через launchctl, а не при запуске вручную с помощью mongodb.

По состоянию на 2015-03-09 инструкции Homebrew после установки MongoDB 3.0.0:

==> 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

Обратите внимание на явный аргумент --config в команде запуска вручную.

7 голосов
/ 15 сентября 2011

Вы должны указать, хотите ли вы использовать другой конфиг; нет файла конфигурации по умолчанию.

Смотрите здесь: Конфигурация на основе файлов

Чтобы достичь того, что вы хотите сделать; Вы можете указать путь к вашей конфигурации или запустить свой сервер монго, например:

mongod --dbpath /usr/local/mongodb_data
1 голос
/ 05 января 2019

Как отмечает @ davidmc24, при установке mongo в режиме homebrew файл конфигурации будет использоваться по умолчанию при запуске с launchctl.Просто используйте:

brew services start mongodb

Вы можете следить за журналами в (расположение по умолчанию):

tail -f /usr/local/var/log/mongodb/mongo.log
1 голос
/ 11 января 2016

Я просто хотел набрать mongod и заставить его работать прилично. Это работает, но с оговорками:

% sudo mkdir /data
% sudo ln -s /usr/local/var/mongodb /data/db

Обратите внимание, что в homebrew по умолчанию есть /usr/local/etc/mongod.conf некоторые полезные конфигурации. Вот файл для справки:

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

Так что он будет входить в консоль, и соединения не будут ограничены localhost.

Примечание: как и в посте @ ballPointPenguin, теперь, когда у Homebrew есть brew services, это отличный вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...