2012-07-24 138 views
2

我试图连接到运行在远程Linux服务器上的MongoDB实例。连接尝试超时导致我怀疑Linux服务器上的网络设置,因为我可以SSH访问服务器并在本地连接到MongoDB。远程连接到Linux服务器上运行的MongoDB

/etc/mongod.conf没有设置bind_ip,所以这不是问题。

任何人都可以指出我如何解决这个问题?

回答

2

你能telnet到远程主机的MongoDB端口并连接成功吗?

如果是这样,这意味着端口是开放的,连接工作,它不是防火墙/ iptables等问题。你应该看看下一部分 - 你是否启用了身份验证?

如果你不能连接telnet,那么有些东西阻止你从远程主机到那个端口。它可能是防火墙,也可能在主机上 - 这取决于你的设置和基础设施。

+0

'telnet'超时,所以我想这是一个防火墙/ iptables的问题。你知道我会在哪里找到这些配置吗? – Chania 2012-07-24 14:06:57

+1

这实际上取决于你已经部署的位置。首先,确保(再次)本地主机连接成功。接下来,对于Linux上的本地内容,首先确保你没有运行SELinux或类似的东西(真的只是一个RHEL的东西)。接下来,您需要检查iptables,看看是否丢弃了任何东西(如root:'iptables -L -vn')。对于非本地防火墙设置,您需要联系您的网络管理员,或者查看亚马逊的安全区域,或者任何类似的东西。 – 2012-07-24 16:38:57

1

删除mongoDB获取的任何锁 sudo rm -rf /data/configdb/mongod.lock;

创建的配置和碎片服务器

sudo mkdir /data; 
sudo mkdir /data/db; 
sudo mkdir /data/configdb; 
sudo chown -R ubuntu:ubuntu /data; 
sudo chmod -R 755 /data 

数据目录给的权利,以上创建的文件夹。 授予上述创建的文件夹的所有权。

现在尝试连接到mongodb,它现在肯定会连接。

+0

很好的解释 – Moitt 2015-04-14 12:35:50