Дб монго стартовая ошибка (каждый раз)

Я не могу запустить дб монго. Это дает ту же ошибку каждый раз.

2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] MongoDB starting : pid=80283 port=27017 dbpath=/data/db 64-bit host=ubuntu
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] db version v3.4.6
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] allocator: tcmalloc
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] modules: none
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] build environment:
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten]     distmod: ubuntu1604
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten]     distarch: x86_64
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten]     target_arch: x86_64
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] options: {}
2017-07-19T07:39:16.964-0700 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to lock file: /data/db/mongod.lock Resource temporarily unavailable. Is a mongod instance already running?, terminating
2017-07-19T07:39:16.964-0700 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-07-19T07:39:16.964-0700 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-07-19T07:39:16.965-0700 I CONTROL  [initandlisten] now exiting
2017-07-19T07:39:16.965-0700 I CONTROL  [initandlisten] shutting down with code:100

Или иногда порт используемая ошибка.

fogserver@iotlab-FogServer:~$ mongod
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] MongoDB starting : pid=21462 port=27017 dbpath=/data/db 64-bit host=iotlab-FogServer
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] db version v3.4.6
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] allocator: tcmalloc
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] modules: none
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] build environment:
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten]     distmod: ubuntu1604
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten]     distarch: x86_64
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten]     target_arch: x86_64
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] options: {}
2017-07-19T17:24:01.317+0200 E NETWORK  [initandlisten] listen(): bind() failed Address already in use for socket: 0.0.0.0:27017
2017-07-19T17:24:01.317+0200 E NETWORK  [initandlisten]   addr already in use
2017-07-19T17:24:01.317+0200 E NETWORK  [initandlisten] Failed to set up sockets during startup.
2017-07-19T17:24:01.317+0200 E STORAGE  [initandlisten] Failed to set up listener: InternalError: Failed to set up sockets
2017-07-19T17:24:01.317+0200 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-07-19T17:24:01.317+0200 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-07-19T17:24:01.317+0200 I CONTROL  [initandlisten] now exiting
2017-07-19T17:24:01.317+0200 I CONTROL  [initandlisten] shutting down with code:48
fogserver@iotlab-FogServer:~$

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

0
задан 19 July 2017 в 09:11

1 ответ

Это происходит, потому что сервер MongoDB уже работает на Вашей системе, вероятно, как daemonized сервис.

Согласно Вашим тегам, Вы запускаете Ubuntu 16.04, которая использует systemd. Можно проверить состояние выполнения сервиса с помощью этой команды:

sudo systemctl status mongodb

Если это сообщает как выполнение, у Вас уже есть выполнение сервера MongoDB - пытаются соединиться с ним обычно без ручного запуска mongod.

Если Вы не хотите/нуждаетесь, чтобы daemonized сервис запустился при начальной загрузке системы, можно отключить MongoDB от выполнения с этим:

sudo systemctl disable mongodb
sudo systemctl stop mongodb

Теперь, можно запустить и вручную остановить MongoDB с помощью также mongod или путем запуска/остановки демона:

sudo systemctl start mongodb

Я лично настоятельно рекомендовал бы, чтобы Вы продолжили использовать свой daemonized сервис, поскольку Вы не должны волновать по поводу этого сбой или подобный. Если безопасность является беспокойством, портами MongoDB блока в Вашем брандмауэре.


При необходимости в записях в журнале для выполнения daemonized сервис можно использовать journalctl команда, как так:

sudo journalctl -u mongodb

Если Вы хотите живой журнал, добавьте -f флаг командной строки к journalctl команда.


По некоторым причинам, при необходимости в и daemonized MongoDB и в MongoDB по запросу запуском необходимо будет изменить связывать информацию и каталог данных для одного из этих двух экземпляров. Посмотрите здесь для части загадки.

С другой стороны, можно просто остановить сервис при выполнении демона непосредственно.

0
ответ дан 2 November 2019 в 21:50

Другие вопросы по тегам:

Похожие вопросы: