连接到副本集时,MongoDB连接拒绝连接到本地节点
我有一个由四个节点(ux002、ux009、ux019、ux020)组成的副本集。我有一个程序,我想在使用Mongo Java驱动程序连接到这个复制集的相同四个节点上并行运行 检查副本集的状态表明,所有四个节点都运行正常,但程序会在所有四个节点上抛出以下警告消息: 2014年11月12日下午2:34:40 com.mongodb.ConnectionStatus$UpdateableNode更新 警告:服务器出现故障:ux009/127.0.1.1:27017-java.io.IOException-消息:无法连接到[ux009/127.0.1.1:27017]bc:java.net.ConnectException:连接被拒绝 但是,在每个节点上,出现故障的服务器就是程序运行的服务器。我在ux009上运行程序,它告诉我ux009已关闭。我在ux002上运行它,它告诉我ux002坏了 我做了一个愚蠢的简单程序来测试我的原始代码是否有问题,但同样的警告依然存在:连接到副本集时,MongoDB连接拒绝连接到本地节点,mongodb,mongodb-java,Mongodb,Mongodb Java,我有一个由四个节点(ux002、ux009、ux019、ux020)组成的副本集。我有一个程序,我想在使用Mongo Java驱动程序连接到这个复制集的相同四个节点上并行运行 检查副本集的状态表明,所有四个节点都运行正常,但程序会在所有四个节点上抛出以下警告消息: 2014年11月12日下午2:34:40 com.mongodb.ConnectionStatus$UpdateableNode更新 警告:服务器出现故障:ux009/127.0.1.1:27017-java.io.IOExcepti
public static void main(String[] args) throws Exception {
List<ServerAddress> addrs = new ArrayList<>();
if (args.length == 0) {
addrs.add(new ServerAddress("localhost", 27017));
} else {
for (String a : args) {
String[] host = a.split(":");
addrs.add(new ServerAddress(host[0], Integer.valueOf(host[1])));
}
}
mongo = new Mongo(addrs);
Thread.sleep(5000); // Sleep to give it time to print messages
mongo.close();
}
publicstaticvoidmain(字符串[]args)引发异常{
List addrs=new ArrayList();
如果(args.length==0){
addrs.add(新服务器地址(“localhost”,27017));
}否则{
for(字符串a:args){
字符串[]主机=a.split(“:”);
addrs.add(新服务器地址(主机[0],Integer.valueOf(主机[1]));
}
}
mongo=新mongo(地址);
Thread.sleep(5000);//sleep给它打印消息的时间
mongo.close();
}
我按如下方式运行它:
java-jar mongo-test.jar ux002:27017 ux009:27017 ux019:27017 ux020:27017
是否mongod
配置不正确?或者我误用了JavaAPI
MongoJava驱动程序是2.9.3版,mongod是2.6.5版
非常感谢!
-Jim本地主机的IP有点奇怪:
ux009/127.0.1.1:27017
我本以为会是:
ux009/127.0.0.1:27017
很可能有人在每台机器上的/etc/hosts中输入了ip地址。对于本地主机来说,ip有点奇怪:
ux009/127.0.1.1:27017
我本以为会是:
ux009/127.0.0.1:27017
很可能有人在每台机器上的/etc/hosts中输入了ip地址。为了完整起见,将答案张贴在这里。问题是mongod配置文件中的bind_ip参数仅设置为其中一个节点的ip地址。感谢helmy发现了这一点。为了完整起见,请在此处发布答案。问题是mongod配置文件中的bind_ip参数仅设置为其中一个节点的ip地址。感谢helmy发现了这一点。您有绑定ip设置吗?如果是这样,可能MongoDB没有配置为在本地主机上侦听。您可能还需要仔细检查mongod日志以验证它是否已启动,检查错误并仔细检查端口号。如果可能,也可能值得升级到最新的Java驱动程序,2.12.4应该是最新的。嗨,helmy,谢谢!mongod似乎是在bind_ip设置为主节点的ip地址的情况下启动的。现在一切似乎都正常了:)您有绑定ip设置吗?如果是这样,可能MongoDB没有配置为在本地主机上侦听。您可能还需要仔细检查mongod日志以验证它是否已启动,检查错误并仔细检查端口号。如果可能,也可能值得升级到最新的Java驱动程序,2.12.4应该是最新的。嗨,helmy,谢谢!mongod似乎是在bind_ip设置为主节点的ip地址的情况下启动的。现在一切似乎都在运转:)