При запуске sudo mongod
он не загружает конфигурационный файл на всех, она в буквальном смысле начинается с скомпилированного значения по умолчанию - порт 27017, database path из/данных/БД и т.д. - именно поэтому вы получили ошибку о невозможности чтобы найти эту папку. «Ubuntu default» используется только тогда, когда вы указываете его в файле конфигурации (если вы начинаете использовать служебную команду, это делается для вас за кулисами).
Следующая вы запускали его, как это:
sudo mongod -f /etc/mongodb.conf
Если бы не было проблем раньше, то теперь будет - вы запустили процесс, с помощью обычной конфигурации (указывая на ваш обычный DBPATH и журнал) как пользователь root. Это означает, что в этой обычной папке MongoDB теперь будет несколько файлов с пользователем: группа root:root
.
Это приведет к ошибкам при попытке запустить его как обычный сервис еще раз, поскольку пользователь mongodb (который служба будет пытаться выполнить как) не будет иметь права доступа к этим root:root
файлам, и, самое главное, он будет вероятно, не сможет записать в файл журнала, чтобы предоставить вам любую информацию.
Поэтому, чтобы запустить его как обычный сервис, нам необходимо исправить эти разрешения. Во-первых, убедитесь, что MongoDB в настоящее время не работает, как корень, а затем:
cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .
Это должно исправить его (при условии пользователя: группа mongodb:mongodb
), хотя это, вероятно, лучше, чтобы проверить с ls -al
или аналогичный, чтобы убедиться, , Как только это будет сделано, вы сможете снова запустить службу.
Если вы начинаете mongod в качестве службы с помощью:
sudo service mongod start
Убедитесь, что каталоги, определенные для LogPath, DBPATH и pidfilepath в вашем mongod.conf существуют и принадлежат mongod: mongod.
Ну, я читаю тот же ответ http: // stackoverflow.com/a/12232668/609782 То, что я не понял, мое имя службы является «mongod», и я вошел в систему как «ec2-user», поэтому, делая «chown», должен быть мой «user: group» ? это определенно не mongodb: mongodb, не так ли? – Darpan
Сделайте ls -al и проверьте, что представляет собой группа пользователей и соответствующим образом измените разрешение. – error2007s
нужно вызвать 'ls -al' в какой папке? (или это не имеет значения?), как когда я это делал в корневом каталоге, я получил список с разными пользователями: группы – Darpan