连接被拒绝MongoDB errno 111
我有一个运行Ubuntu 12.04 LTS和MongoDB实例的Linode服务器(服务正在运行并且可以本地连接),我无法从外部源连接到该服务器。连接被拒绝MongoDB errno 111
我加入了这两个规则,我的IP表,其中< IP地址>是我想连接FROM(如本MongoDB reference概述)服务器:
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地址>然而,当我尝试从< IP地址>连接到我的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
任何帮助是非常赞赏!!!!谢谢!!!
感谢您的帮助大家!
原来,这是一个iptable冲突。列出端口打开的两条规则(导致一个封闭的端口)。
但是,aka和manu2013的另一个评论是我遇到的问题,如果不是冲突的话。
所以!请始终记住编辑/etc/mongod.conf
文件并设置您的bind_ip = 0.0.0.0
以便进行外部连接。
此外,请确保您的iptable中没有mongo端口需要的冲突规则(请参阅link on mongodb's site以正确设置您的iptables)。其他
它的工作,你也可以注释掉bind_ip –
或者只是在连接字符串中使用127.0.0.1,而不是本地主机,并在内部连接... –
不要忘记让'sudo服务mongod restart' – mqklin
尝试以下操作:
sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart
一种选择是只修复数据库,像这样(注:应预先创建的第一DB0目录):
mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0
这也是在生产环境可以接受的办法......
这些命令固定我的问题,
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair
sudo service mongod start
sudo service mongod status
如果你是落后的代理,用途: -
出口HTTP_PROXY =“HTTP: //username:[email protected]:port/”
出口https_proxy = “HTTP://用户名:[email protected]:端口/”
对于Ubuntu服务器15.04和16。04您只需执行此命令
sudo apt-get install --reinstall mongodb
它的工作。谢谢。 –
我没有/data/db
目录。我创建了一个,并给了一个chmod 777
权限,它为我工作
我也有同样的问题。在dbpath中创建一个目录。在我的情况下,没有在/ data/db中的目录。所以我创建了一个。现在它的工作。确保给该目录许可。
你确定其他mongod正在运行吗?你可以在本地连接到它吗? – Sammaye
mongod在本地运行,是的,我可以在本地连接。 – dbcooper