Mongodb не запускается linux

Обновлено: 05.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

чтобы изменить ситуацию, либо запустите

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

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

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

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

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

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

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

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

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

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

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

Я установил MongoDB 2.6 на чистой установленной Ubuntu 15.04:

Все закончилось без проблем. Однако, когда я попытался запустить его, я получил следующую ошибку:

Я установил из репозитория Debian Wheeze, и он работает нормально.

Сначала убедитесь, что вы удалили пакет mongodb-org и все его зависимости:

Удалите старый созданный вами mongodb.list:

Вместо этого используйте репозиторий Debian:

Обновите и установите снова:

После этого вы можете успешно запустить сервер:

Ubuntu 15.04 переводит систему инициализации по умолчанию с Upstart на systemd. У меня не было успеха, начиная MongoDB 3.0 с systemd.

Вы можете переключиться обратно на Upstart, установив upstart-sysv :

Затем перезагрузка и MongoDB должны быть.

Я надеюсь найти простой способ запустить MongoDB в Ubuntu 15.04, не переключаясь во времени.

(Обратите внимание, что сервисные блоки, поставляемые Debian/Ubuntu, не применяют рекомендованные монго директивы системного сервисного модуля.)

Я создал сценарий Systemd, который, кажется, работает для Ubuntu 15.04+ и Mongo 3.0+:

Убедитесь, что вы установили каталог данных в /etc/mongod.conf

Похоже, что это возможно не будет полностью исправлено для>2.6.3 до Ubuntu 16.04, если не будет сильного протеста.

Таким образом, решение для меня было выпустить:

Создайте файл /lib/systemd/system/mongodb.service со следующим содержимым:

Используйте "mongodb" вместо "mongod"

Вы сделали опечатку в вашей команде.

Попробуйте использовать это вместо: sudo service mongodb start

Сначала скачайте mongodb:

запустите mongod (mongodb-linux-x86_64-3.0.6.tgz/bin/mongod) с атрибутом -dbpath:

Это может быть пустой каталог любой на ваш выбор

и наконец, запустите mongo (mongodb-linux-x86_64-3.0.6.tgz/bin/mongo)

работал на моем убунту 15:)

извините за мой плохой английский, я живу в Бразилии

После нескольких часов поиска, решение было обновить мою Ubuntu с 15.04 до 16.04 с помощью этой команды:

Шаг 1

Это займет несколько минут, поэтому не паникуйте, чем вы должны удалить mongodb:

Шаг 2

А теперь установите mongodb, но используя этот источник:

Шаг 3

все, что вам нужно сделать, это зайти в этот файл с помощью gedit и удалить "в начале и в конце предложения".

Пока вопрос к версии 2.6. Я получаю точно такую ​​же ошибку Unit mongod.service failed to load в моем Ubuntu 15.04 для версии 3.0.6. В конечном итоге решено с помощью того же хранилища wheezy, которое упоминалось выше в Dielson Sales.

И после установки (следуя инструкциям @Dielson Sales) возникла вышеуказанная ошибка. Вот как я наконец решил.

A) Измените файлы хранилища данных MongoDB по умолчанию с / var / lib / mongodb на / data / db

Сначала создайте новый каталог / data / db sudo mkdir -p /data/db

Открыть файл mongod.conf sudo gedit /etc/mongod.conf и измените строку "dbpath", как показано ниже

Замените dbpath=/var/lib/mongodb на dbpath=/data/db и сохраните файл.

Затем удалите старый по умолчанию / var / lib / mongodb

Теперь мы должны сделать все каталоги / файлы, принадлежащие пользователю mongod

Б) так беги sudo chown -R mongodb:mongodb /data/db

И теперь, наконец, я могу начать Монго с sudo service mongod start

я запускаю Fedora 20 и установил MongoDB на руководство по установке Red Hat по официальной документации. Я смог запустить mongod демон как Служба без ошибок в первый раз, но когда я выключил свою машину и вернулся, служба отказалась запускаться из-за некоторого сбоя.

в моем журнале, перечисленном после успешного запуска, я вижу следующее:

это странно, учитывая, что в моем файле config в /etc/mongod.conf настройки пути к базе данных следующим образом:

наконец, если я выполню эту команду:

демон запускается нормально. Однако я не могу реплицировать это поведение без ошибок для запуска службы.

может кто-нибудь сказать мне, что именно не так и как я могу начать работать mongod как услуги?

about to fork child process, waiting until server is ready for connections. forked process: 2702 ERROR: child process failed, exited with error number 1

на /var/run/mongodb каталог не существовал, поэтому я создал и назначил его пользователю mongod. К сожалению, это не имело большого значения.

[initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /var/lib/mongo/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

что сработало для меня на Fedora 20: нам нужно создать temp dir для каждой загрузки, и это обрабатывается systemd-tmpfiles. Итак, создайте файл / lib / tmpfiles.d / mongodb.conf и поместите в него одну строку:

это, похоже, обрабатывает его при перезапуске; если вы не хотите перезапускать сразу, вы можете выполнить это с помощью:

(см. На Man-страницах за помощью systemd-tmpfiles)

у меня такая же проблема, я решил ее временно, отключив SELinux, перезагрузил машину, устранил mongod.lock:

создав файл / var/run/mongodb / mongo.pid (как указано в файле конфигурации /etc/mongod.conf):

и давая 777 permissions:

и начиная монго:

но проблема сохраняется после перезагрузки машины. Папка и файл исчезают.

Я потратил некоторое время на изучение этого, и кажется, что разрешения PID-папки и файла не работают с демоном по умолчанию.

найдите строку, которая говорит pidfilepath=/var/run/mongodb / mongod.pid и измените его соответственно.

Если вы запускаете mongod как сервис, используя:

убедитесь, что каталоги, определенные для logpath, dbpath и pidfilepath в вашем mongod.conf существуют и принадлежат mongod: mongod.

У меня была та же проблема с запуском mongodb 3.0.4 на OpenSuse 13.2, и я обнаружил, что каталог mongod в /var/run отсутствует. Если я создал каталог вручную, он исчезнет после перезагрузки.

Я решил это, добавив следующие строки в мой /etc / init.сценарий запуска D / mongod:

Я встретил ту же проблему,когда я изменяю свой mongod.conf как следовать, и проблема решена

советы: logpath-это файл журнала, а не папка.

Я просто испытываю аналогичную проблему на ubuntu. Встречается почти каждая ошибка советы, как

или child process failed, exited with error number 100

или [signalProcessingThread] got signal 2 (Interrupt: 2), will terminate after current cmd ends

много раз я удаляю Mongodb и пытаюсь установить снова, но проблема остается.

наконец-то я пришел к этому пути: Сначала создайте резервную копию данных, затем удалите Mongodb с помощью

узнайте все файлы, связанные с mongodb:

удалить их все с помощью "rm" или "rmdir", включая пакеты в /var/cache/. и everthing.

затем повторите установку как в первый раз сделал :

он будет работать снова.

комментарий ниже строки из вашего " монго.файл conf".

pidfilepath=/ВАР/работа/в MongoDB/команду mongod.пид

следующие команды решены для cent os

нам нужно создать temp dir расположение pidfile /var/run/mongodb Это обрабатывается systemd-tmpfiles. Итак, создайте файл / lib / tmpfiles.d / mongodb.conf как root:

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

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

Итак, я отменяю это и пытаюсь запустить как службу:

пока выглядит неплохо, но сервер mongo не запустился. Бежит другой:

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

Я в недоумении, что может быть не так. Я проверил сценарии выскочек, и они кажутся прекрасными. /etc/init/mongodb.conf работает:

хорошо, все это сводится к разрешениям, но давайте сделаем это шаг за шагом. При запуске sudo mongod Он вообще не загружает файл конфигурации, он буквально начинается с скомпилированного по умолчанию-port 27017, путь к базе данных of / data / db etc. - вот почему вы получили ошибку о невозможности найти эту папку. "Ubuntu default" используется только тогда, когда вы указываете его на конфигурационный файл (если вы начинаете использовать команду service, это делается для вас за сцены.)

затем вы запустили его так:

если раньше не было проблем, то теперь будет-вы запустили процесс, с вашей обычной конфигурацией (указывая на свой обычный dbpath и log) в качестве пользователя root. Это означает, что теперь в этой обычной папке MongoDB будет несколько файлов с пользователем: группа root:root .

это вызовет ошибки при попытке запустить его как обычный сервис снова, потому что пользователь в MongoDB (который служба попытается запустить как) не будет иметь разрешения на доступ к этим root:root файлы, и, самое главное, он, вероятно, не сможет записать в файл журнала, чтобы дать вам какую-либо информацию.

$ судо Чаун -Р в MongoDB:MongoDB в файле /var/lib в/в MongoDB/.

$ судо Чаун -Р в MongoDB:MongoDB в каталоге /var/журнал/в MongoDB.log

запуск MongoDB как демон (фоновый процесс) с помощью следующей команды:

$ mongod --fork --dbpath /ВАР/Либ/в MongoDB/ --smallfiles --пути журнала /var/log / mongodb.log --logappend

до Выключить MongoDB введите Mongo CLI, получите доступ к администратору и выполните команду выключения:

Читайте также: