我正在尝试创建一个远程mongodb服务器来处理我的java项目。
我正在使用流浪者+ ansible来创建环境,但是我无法获得连接。
我总是通过网络被拒绝连接。本地主机上的相同代码工作得很好。
我使用的是“流浪”框:chef/centos-6.5
我的任务如下:
我添加了iptable的例外情况:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT它是活跃的:
根@localhost ~# iptables -v链输入(策略接受209个数据包,13148字节) pkts字节目标prot选择退出源目的地1070 68777接受tcp -任何地方tcp dpt:27017
定义MongoDbFactory的java代码
public @Bean MongoDbFactory mongoDbFactory()抛出异常{ MongoClient mongo =新MongoClient("",27017);返回新SimpleMongoDbFactory(mongo,"test");}
但是,当我试图连接到它时,我总是会得到以下异常。
com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=192.168.1.11:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.ConnectException: Connection refused}}]如果我从localhost运行mongodb并相应地更改ip,那么一切都正常。
谢谢
发布于 2015-01-17 19:44:34
首先,为了确保这不是防火墙问题,请在这两个服务器上停止IPTABLES (不要忘记以后重新启用)。
在您试图连接的机器上,ssh直接连接到它并确保MongoDB正在运行,连接本地并检查您是否可以访问DB。
默认情况下,MongoDb不被配置为接受来自远程主机的连接,您能否确保/etc/mongodb.conf文件中有以下行:
bind_ip = 0.0.0.0
port = 27017确保在进行任何更改后重新启动MongoDB。试试这个,如果你还有问题,我会用更多的建议更新答案。
编辑:从2.6版开始配置文件格式已更改为YAML,details 这里,该文件应位于/etc/mongod.conf。
net:
bindIp: 0.0.0.0
port: 27017https://stackoverflow.com/questions/28002848
复制相似问题