Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接到副本集时,MongoDB连接拒绝连接到本地节点_Mongodb_Mongodb Java - Fatal编程技术网

连接到副本集时,MongoDB连接拒绝连接到本地节点

连接到副本集时,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

我有一个由四个节点(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坏了

我做了一个愚蠢的简单程序来测试我的原始代码是否有问题,但同样的警告依然存在:

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地址的情况下启动的。现在一切似乎都在运转:)