2016-07-25 4 views
1

Я установил MongoDB 3.0 с помощью этого учебника -Не удается подключиться MongoDB на AWS EC2 с помощью питона

https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-amazon/

Он установлен штраф. Я также дал разрешения «ec2-user» на все папки данных и журналов, например var/lib/mongo и var/log/mongodb, но также установил файл conf.

Теперь дело в том, что сервер MongoDB всегда не запускается с помощью команды

sudo service mongod start 

это просто сказать failed, ничего другого.

Хотя, если я запускаю команду -

mongod --dbpath var/lib/mongo 

он запускает сервер MongoDB правильно (хотя я упомянул же DBPATH в .conf файл, а)

Что это я здесь делаю неправильно?

ответ

1

При запуске 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.

+0

Ну, я читаю тот же ответ http: // stackoverflow.com/a/12232668/609782 То, что я не понял, мое имя службы является «mongod», и я вошел в систему как «ec2-user», поэтому, делая «chown», должен быть мой «user: group» ? это определенно не mongodb: mongodb, не так ли? – Darpan

+0

Сделайте ls -al и проверьте, что представляет собой группа пользователей и соответствующим образом измените разрешение. – error2007s

+0

нужно вызвать 'ls -al' в какой папке? (или это не имеет значения?), как когда я это делал в корневом каталоге, я получил список с разными пользователями: группы – Darpan

Смежные вопросы