连接拒绝MongoDB errno 111
我有一个Linode服务器运行Ubuntu 12.04 LTS和MongoDB实例(服务正在运行,可以在本地连接),我无法连接到外部来源。
我已经将这两个规则添加到我的IP表中,其中<ip address>是我想要连接的服务器(如在此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地址>和从<IP地址>,但是当我尝试从<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
任何帮助是非常令人高兴的! 谢谢!!!
感谢大家的帮助!
原来,这是一个iptable的冲突。 两个规则列出打开的端口(导致一个封闭的端口)。
然而,manu2013的另外一个意见是我遇到的问题,即使不是冲突。
所以! 一定要记得编辑/etc/mongod.conf
文件,并设置你的bind_ip = 0.0.0.0
以build立外部连接。
另外,确保你的iptable中没有mongo端口的冲突规则(参见mongodb网站上的链接来正确设置你的iptables)。
尝试以下操作:
sudo rm /var/lib/mongodb/mongod.lock sudo service mongodb restart
这些命令为我解决了这个问题,
sudo rm /var/lib/mongodb/mongod.lock sudo mongod --repair sudo service mongod start sudo service mongod status
如果您在代理后面,请使用: –
export http_proxy =“http:// username:password@company.com:port /”
导出https_proxy =“http://用户名:password@company.com:port /”
参考: https : //stackoverflow.com/a/24410282/4359237
对于Ubuntu Server 15.04和16.04,只需要执行这个命令
sudo apt-get install --reinstall mongodb
我没有一个/data/db
目录。 我创build了一个,并给了一个chmod 777
权限,它为我工作
另一个select是像这样修复你的数据库(注意:db0目录应该是预先创build的):
mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0
这在生产环境中也是一个可接受的选项。