Связь отказалась от MongoDB errno 111

У меня есть Linode-сервер, на котором работает Ubuntu 12.04 LTS и экземпляр MongoDB (служба запущена и МОЖЕТ подключаться локально), с которой я не могу подключиться от внешнего источника.

Я добавил эти два правила в свои IP-таблицы, где < ip address > - это сервер, на котором я хочу подключить FROM (как указано в этой ссылке MongoDB):

iptables -A INPUT -s < ip-address > -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -d < ip-address > -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

И я вижу правило в моей таблице IP, разрешающее соединения на 27017 в и из < ip address > однако, когда я пытаюсь подключиться, < ip address > в мою базу данных mongo, используя следующую команду:

mongo databasedomain/databasename -u username -p password

Я получаю эту ошибку:

2014-07-22T23:54:03.093+0000 warning: Failed to connect to databaseserverip:27017, reason: errno:111 Connection refused 2014-07-22T23:54:03.094+0000 Error: couldn't connect to server < ip address >:27017 (databaseserverip), connection attempt failed at src/mongo/shell/mongo.js:148 exception: connect failed

Любая помощь ОЧЕНЬ ОЦЕНИВАЕТ!!!! Спасибо!!!

Ответ 1

Спасибо за помощь всем!

Оказывается, это был iptable-конфликт. Два правила, показывающие открытие порта (что привело к закрытому порту).

Однако один из комментариев aka и другого manu2013 был проблемой, с которой я столкнулся бы, если бы не конфликт.

Итак! Всегда не забудьте отредактировать файл /etc/mongod.conf и установите bind_ip = 0.0.0.0, чтобы сделать подключения извне.

Кроме того, убедитесь, что у вас нет противоречащих правил в вашем iptable для порта mongo (см. ссылка на сайте mongodb, чтобы правильно настроить iptables).

Ответ 2

Попробуйте следующее:

sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart

Ответ 3

Эти команды исправили проблему для меня,

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair
sudo service mongod start
sudo service mongod status

Если вы находитесь за прокси-сервером, используйте: -
export http_proxy = "http://имя пользователя: пароль@company.com: port/"
export https_proxy = "http://имя пользователя: пароль@company.com: port/"

Ссылка: fooobar.com/questions/91787/...

Ответ 4

Для Ubuntu Server 15.04 и 16.04 вам нужно выполнить только эту команду

sudo apt-get install --reinstall mongodb

Ответ 5

У меня не было каталога /data/db. Я создал один и дал разрешение chmod 777, и это сработало для меня

Ответ 6

Еще один вариант - просто восстановить базу данных так (обратите внимание: сначала должен быть создан каталог db0):

mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0

Это также приемлемый вариант в производственных средах...

Ответ 7

У меня также была такая же проблема. Создайте каталог в dbpath. В моем случае не было каталога в /data/db. Так я его создал. Теперь его работа. Обязательно дайте разрешение этому каталогу.