служба 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 ответов:
на моем сервере 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
помните, что при перезапуске базы данных путем удаления.блокировка файлов с помощью силы, данные могут быть повреждены. Ваш сервер не должен считаться "здоровым", если вы перезапустили сервер таким образом.
чтобы исправить ситуацию, запустите
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 . . .
Это также может произойти, если диск заполнен на свой
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/