Служба mongodb не запускается - программирование

Служба 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
4b9b3361

Ответ 1

Фиксированный!

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

В качестве решения мне пришлось рекурсивно менять владельца каталога /data/db.

Ответ 2

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

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

Ответ 3

Я был скучен этой проблемы, поэтому решил создать оболочку script, чтобы легко восстановить мою базу данных 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

Ответ 4

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

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

mongod --repair

или

> db.repairDatabase();    

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

Ответ 5

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

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

Ответ 6

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

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

mongod --repair --dbpath DBPATH

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

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

ps -ef | grep mongo

вы получите mondod 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

Ответ 7

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

sudo apt-get install  mongodb

Ответ 8

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

Ответ 9

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

Ответ 10

Решение Nianliang оказалось настолько полезным из моего Vagrant ubunuto, что я закончил тем, что добавил эти 2 команды в файл /etc/init.d/mongodb:

.
.
.    
start|stop|restart)
        rm /var/lib/mongodb/mongod.lock
        mongod --repair
.
.
.

Ответ 11

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

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

Ответ 12

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

Ответ 13

sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
sudo service mongodb start

Ответ 14

Я использовал другой подход:

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

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

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

Что я делаю: В моем прогоне script, я проверяю, работает ли манго с помощью

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

Если он не запущен, я запускаю

sudo mongod &

Работает как шарм, нет настроек и т.д.

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

Удачи!

Ответ 15

Установите 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

Ответ 16

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