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

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

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

Исправлена!

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

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

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

 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

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

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

 mongod --repair 

или

 > db.repairDatabase(); 

в оболочке монго, чтобы вернуть базу данных в «здоровое» состояние.

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 

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

 sudo apt-get install mongodb 

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

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

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

 . . . 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 при запуске процесса, поэтому его трудно устранить.

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

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

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

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

Таким образом, это не «первоclassная» инфраструктура, ей не нужно постоянно подниматься, но все же важно.

Что я делаю: в моем сценарии запуска я проверяю, работает ли манго, используя –

 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/

  • Как обновить _id одного документа MongoDB?
  • Как подключить Robomongo к MongoDB
  • MongoDB не может запустить сервер: механизм хранения по умолчанию «wiredTiger» недоступен в этой сборке mongod
  • Запрос даты с ISODate в mongodb, похоже, не работает
  • Что такое ошибка Mongoose Присвоение объекта ObjectId не удалось для значения XXX по пути «_id»?
  • Добавить новое поле в каждый документ в коллекции MongoDB
  • Автоматическое увеличение в MongoDB для сохранения последовательности уникального идентификатора пользователя
  • Использование буферизованных данных в режиме сортировки переполнения превышает внутренний предел
  • MongoDB: Обновление документов с использованием данных из того же документа
  • Какие символы НЕ допускаются в именах полей MongoDB?
  • Mongodb $ push в вложенном массиве
  • Interesting Posts

    Когда следует перерабатывать bitmap с использованием LRUCache?

    Массовая деинсталляция

    Выполнить метод в каждом запросе в MVC, C #?

    Копирование значений из одного объекта в другой

    Список include_directories в CMake

    Для обновления требуется действительный UpdateCommand при передаче коллекции DataRow с измененными строками

    CUDA, как получить сетку, блок, размер резьбы и рассчитать вычисление не квадратной матрицы

    Настраивает ли USB-концентратор производительность?

    Круглые до двух знаков после запятой

    Остановите Windows 8.1, автоматически обновив драйвер Intel HD Graphics 4000

    Как я могу получить точное время, например, в миллисекундах в Objective-C?

    ‘…! = Null’ или ‘null! = …’ лучшая производительность?

    C для вставки текста в определенном месте в файле без перезаписи существующего текста

    Удаленный рабочий стол не будет максимизировать

    Гипер-V и поддержка виртуализации BIOS заставляют Windows 8 зависать при загрузке

    Давайте будем гением компьютера.