我试图连接到运行在远程Linux服务器上的MongoDB实例。连接尝试超时导致我怀疑Linux服务器上的网络设置,因为我可以SSH访问服务器并在本地连接到MongoDB。远程连接到Linux服务器上运行的MongoDB
/etc/mongod.conf
没有设置bind_ip
,所以这不是问题。
任何人都可以指出我如何解决这个问题?
我试图连接到运行在远程Linux服务器上的MongoDB实例。连接尝试超时导致我怀疑Linux服务器上的网络设置,因为我可以SSH访问服务器并在本地连接到MongoDB。远程连接到Linux服务器上运行的MongoDB
/etc/mongod.conf
没有设置bind_ip
,所以这不是问题。
任何人都可以指出我如何解决这个问题?
你能telnet到远程主机的MongoDB端口并连接成功吗?
如果是这样,这意味着端口是开放的,连接工作,它不是防火墙/ iptables等问题。你应该看看下一部分 - 你是否启用了身份验证?
如果你不能连接telnet,那么有些东西阻止你从远程主机到那个端口。它可能是防火墙,也可能在主机上 - 这取决于你的设置和基础设施。
删除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,它现在肯定会连接。
很好的解释 – Moitt 2015-04-14 12:35:50
'telnet'超时,所以我想这是一个防火墙/ iptables的问题。你知道我会在哪里找到这些配置吗? – Chania 2012-07-24 14:06:57
这实际上取决于你已经部署的位置。首先,确保(再次)本地主机连接成功。接下来,对于Linux上的本地内容,首先确保你没有运行SELinux或类似的东西(真的只是一个RHEL的东西)。接下来,您需要检查iptables,看看是否丢弃了任何东西(如root:'iptables -L -vn')。对于非本地防火墙设置,您需要联系您的网络管理员,或者查看亚马逊的安全区域,或者任何类似的东西。 – 2012-07-24 16:38:57