служба mongodb не запускается


Я установил mongodb 2.0.3, используя пакет debian mongodb-10gen. Все прошло хорошо, за исключением службы, которая установлена по умолчанию не запускается при запуске компьютера. Элемент mongod работает только как пользователь root. может в этом причина. но насколько я знаю, должны работать, так как они добавляются пользователем root.

какое может быть решение?

если я запускаю просто mongod

Tue Mar 27 13:00:44 [initandlisten] couldn't open /data/db/transaction_processor_dummy_development.ns errno:1 Operation not permitted

если я запускаю sudo service mongodb start это говорит:

mongodb start/running, process 4861

но нет никакого процесса при просмотре с htop и mongo говорит:

MongoDB shell version: 2.0.3
connecting to: test
Tue Mar 27 13:02:40 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
17 59

17 ответов:

на моем сервере ubuntu просто запустите:

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start

исправлено!

причиной dbpath переменная /etc/mongodb.conf. Ранее я использовал mongodb 1.8, где значение по умолчанию для dbpath было /data/db. Работа выскочки mongodb(который поставляется с пакетом mongodb-10gen) вызывает mongod С .

в качестве решения, я только должен был изменить владельца

это также может произойти, если ваши права доступа к файлам будут каким-то образом изменены. Удаление файла блокировки не помогло, и мы получали ошибки в файле журнала, такие как:

2016-01-20T09:14:58.210-0800 [initandlisten] warning couldn't write to / rename file /var/lib/mongodb/journal/prealloc.0: couldn't open file    /var/lib/mongodb/journal/prealloc.0 for writing errno:13 Permission denied
2016-01-20T09:14:58.288-0800 [initandlisten] couldn't open /var/lib/mongodb/local.ns errno:13 Permission denied
2016-01-20T09:14:58.288-0800 [initandlisten] error couldn't open file /var/lib/mongodb/local.ns terminating

Итак, пошли проверять разрешения:

ls -l /var/lib/mongodb

total 245780
drwxr-xr-x 2 mongodb mongodb     4096 Jan 20 09:14 journal
drwxr-xr-x 2 root    root        4096 Jan 20 09:11 local
-rw------- 1 root    root    67108864 Jan 20 09:11 local.0
-rw------- 1 root    root    16777216 Jan 20 09:11 local.ns
-rwxr-xr-x 1 mongodb nogroup        0 Jan 20 09:14 mongod.lock

исправления:

# chown -R mongodb:mongodb /var/lib/mongodb

удалите файл блокировки, если он все еще там:

# rm /var/lib/mongodb/mongod.lock

запуск mongodb

# service mongodb start

хвост журнал и вы должны увидеть в конце:

tail -f /var/log/mongodb/mongodb.log
2016-01-20T09:16:02.025-0800 [initandlisten] waiting for connections on port 27017

Я скучно этой проблемы, поэтому я решил создать сценарий оболочки для восстановления моей базы данных mongo легко.

#!/bin/sh
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start

http://ideone.com/EuqDZ8

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

чтобы исправить ситуацию, запустите

mongod --repair

или

> db.repairDatabase();    

в оболочке mongo, чтобы вернуть вашу базу данных в "здоровое" состояние.

1 - отключить fork на /etc/mongodb.conf если включена

2 - восстановить базу данных

mongod --repair --dbpath DBPATH

3 - убить текущий процесс mongod

найти процессы монго

ps -ef | grep mongo

вы получите mongod PID

mongodb   PID     1  0 06:26 ?        00:00:00 /usr/bin/mongod --config /etc/mongodb.conf

остановить текущий процесс mongod

kill -9 PID

4 - запустить службу mongoDB

service mongodb start

для ubunto, что заставило это произойти и было очень просто установить пакет mongodb:

sudo apt-get install  mongodb

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

просто переустановил монго, и это сработало. Никаких потерянных коллекций. Самое простое решение по крайней мере для меня

решение Nianliang оказалось настолько полезным из моего бродячего ubunuto, что я закончил тем, что добавил Эти 2 команды в свой /etc/init.D / mongodb file:

.
.
.    
start|stop|restart)
        rm /var/lib/mongodb/mongod.lock
        mongod --repair
.
.
.
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
sudo service mongodb start

Это также может произойти, если диск заполнен на свой logpath путь (например, если у вас есть выделенный /log/ каталог / диск и он полон).

Это заставило меня паниковать в течение хороших 15 минут, потому что это также мешает вам читать mongod.log при запуске процесса, так трудно устранить.

пожалуйста, проверьте ваши разрешения для " data папку". Это проблема с разрешениями, так как пользователи linux столкнутся с этой проблемой из-за разрешений SE linux. Таким образом, вы меняете группу ownerand на "mongodb" для " data папка"

Я взял другой подход:

фон: Я использую mongodb, один узел, локальный для моего сервера, в качестве промежуточной области.

Я установил mongo на основе инструкций, доступных в MongoDB docs.

таким образом, это не "премьер" инфраструктура, не нужно быть все время - но все же важно.

что я делаю: В моем сценарии запуска я проверяю, работает ли mongo с помощью -

if pgrep "mongod" >/dev/null 2>&1

если он не работает, то я бегу

sudo mongod &

работает как шарм, без установки и т. д.

Если ваш вариант использования похож, дайте мне знать, если он работает для вас тоже.

удачи!

установить mongodb для ubuntu 14.04

sudo nano /etc/apt/sources.list.d/mongodb-org-3.2.list

echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

sudo apt-get update

sudo apt-get install -y mongodb-org=3.2.10 mongodb-org-server=3.2.10 mongodb-org-shell=3.2.10 mongodb-org-mongos=3.2.10 mongodb-org-tools=3.2.10

У меня была проблема, что запуск службы mongodb не удался, без журналов. что я сделал, чтобы исправить ошибку, чтобы дать доступ на запись в каталог /var/log / mongodb для пользователя mongodb

Напомним, что согласно официальной документации MongoDB, правильная команда для запуска службы (@Ubuntu): sudo service mongod start (06/2018) (не mongodb или mongo).

Ссылка:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/