Связь отказалась от 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. Так я его создал. Теперь его работа. Обязательно дайте разрешение этому каталогу.