mongodb не будет запускаться как служба (только вручную) при установке нескольких ip для bind - PullRequest
0 голосов
/ 16 октября 2018

У меня была эта проблема на днях, когда я пытался подключиться к удаленному (внутри локальной сети) серверу mongo с mongodb Compass.Итак, я отредактировал mongodb.config следующим образом:

port = 27017
bind_ip = 127.0.0.1,192.168.2.101

, где 192.168.2.101 - ip частного сервера монго, и мне удалось подключиться к Compass.Проблема в том, что когда я загружаю или перезагружаю сервер с вышеуказанной конфигурацией в mongodb.config, mongodb как служба отказывается от автоматического запуска, и я должен запустить его вручную с терминала:

sudo service mongodb start

Файл журнала настаиваетчто моя проблема при попытке запустить службу при запуске:

listen(): bind() failed errno:99 Cannot assign requested address for socket: 192.168.2.101:27017
Failed to set up sockets during startup.

, но я проверил с помощью netstat (как в качестве пользователя, так и в качестве пользователя root) и ничего не использовал порт 27017, где я связываю приватный ip во времяпри запуске.Самое смешное, что после запуска, если я запускаю mongodb вручную, все работает отлично, и локальный и приватный ip правильно связаны.

Итак, для ясности, вот краткая временная шкала шагов:

  1. MongoDb запускается нормально и самостоятельно при запуске с этой конфигурацией ->

    port = 27017
    bind_ip = 127.0.0.1
    
  2. Я редактирую mongodb.config так, чтобыпривязать к другому ip следующим образом ->

    port = 27017
    bind_ip = 127.0.0.1,192.168.2.101
    
  3. Я перезагружаю службу mongo - не перезагружаю сервер (все работает нормально)

  4. Теперь перезагрузите сервер (при запуске состояние mongodb выдает ошибку сокета и не запускается как служба)
  5. Я запускаю службу mongo вручную (запускается и работает отлично, а состояние в порядке)

Таким образом, возникает вопрос: почему, когда я связываю второй IP-адрес в mongodb.config, служба mongo не запускается автоматически после перезагрузки и должна запускаться вручную (где она прекрасно работает без использования сокетов).ошибки gn) и / или почему ошибка сокета происходит только во время запуска, а не при ручном запуске?Где может быть проблема?

Заранее спасибо, и я буду продолжать пытаться найти решение, но любая помощь будет оценена.

ps Я бы предпочел не использовать привязку 0.0.0.0и не запускать сервис с помощью bash. Я использую Debian Stretch и Mongo 3.2.11.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...