Сервер MongoDB Ubuntu 16.04

Я установил MongoDB на свой Ubuntu 16.04 VPS и разрешил подключения через брандмауэр. Когда я запускаю сервер с помощью команды (mongod), он запускается без проблем, и затем я могу подключиться к нему (используя RoboMongo в качестве тестового приложения).

Однако, когда я запускаю службу автоматически при запуске (используя systemctl), я не могу к ней подключиться. Я убедился, что он работает, но не смог запустить его сам, так как адрес уже использовался.

Есть ли у кого-нибудь опыт в этом или какие-либо советы о том, как решить проблему? На сервере будет работать только локальный хост, и я буду использовать туннель SSH для целей тестирования, поэтому аутентификация не требуется.

Кто угодно?


person Jasper    schedule 21.02.2017    source источник
comment
Если вы будете использовать туннель, то почему вы разрешаете соединения через брандмауэр? Это бессмысленно   -  person Martin    schedule 21.02.2017
comment
Я не правильно объяснил, прошу прощения. Сначала я протестировал его без туннеля SSH и обнаружил проблему. Проблема сохраняется с установленным туннелем SSH. Теперь я удалил исключение из брандмауэра.   -  person Jasper    schedule 21.02.2017


Ответы (1)


Когда вы запустили mongod, вы предоставили файл конфигурации (используя параметр --config или -f)? Если нет, то по умолчанию он прослушивает все интерфейсы.

Файл конфигурации по умолчанию, который используется при запуске демона с параметрами по умолчанию systemctl для прослушивания только на локальном хосте, что предотвращает его доступность в сети. Это нормально, если вы собираетесь подключаться к серверу через туннель.

person Martin    schedule 21.02.2017
comment
Нет, я не предоставил файл конфигурации, но я не думал, что это необходимо, так как он отлично работает, если я запущу его сам. Судя по вашему ответу, я был прав. Вы хоть представляете, что еще может быть не так? - person Jasper; 21.02.2017
comment
mongod использует конфигурацию по умолчанию при запуске без каких-либо параметров. Запуск Mongo с помощью systemctl обычно приводит к тому, что он где-то читает файл конфигурации (попробуйте /etc/mongod.conf). Как вы создаете свой туннель? - person Martin; 21.02.2017
comment
Robomongo создает для вас туннель SSH. Я аутентифицируюсь, используя имя пользователя/пароль. Но чего я не понимаю, так это того, что он должен использовать ту же конфигурацию, когда я запускаю его сам без указания какого-либо файла конфигурации, не так ли? - person Jasper; 21.02.2017
comment
Да, должно. Было бы неплохо, если бы вы обновили свой вопрос дополнительной информацией (лог-файлы были бы хорошим началом). Возможно, кто-то, у кого больше знаний о Робомонго, сможет понять, что не так. - person Martin; 21.02.2017
comment
Проблема не в Robomongo, так как он отлично работает с ssh-туннелем и без него, пока я запускаю его с помощью команды. Чтобы дважды проверить, я также попробовал это с помощью mongo.exe для Windows, который может прекрасно подключаться, пока я запускаю его сам. Глядя на журналы, он ничего не сообщает. Ошибка в консоли: connect@src/mongo/shell/mongo.js:234:13 @(connect):1:6 исключение: соединение не удалось - person Jasper; 21.02.2017
comment
Как я уже сказал - обновите свой вопрос с дополнительной информацией. - person Martin; 22.02.2017