【问题标题】:MongoClient.connect - Error: Could not locate any valid servers in initial seed listMongoClient.connect - 错误:在初始种子列表中找不到任何有效服务器
【发布时间】:2014-11-19 13:58:20
【问题描述】:

我正在尝试使用带有简单 url 连接字符串副本集的 mongodb.MongoClient.connect() 连接 mongodb。当我启动服务器时,它会抛出错误


错误:在初始种子列表中找不到任何有效的服务器

这是我的代码,我在其中传递三个 mongodb 服务器,如下所示


var MongoClient = mongodb.MongoClient; MongoClient.connect('mongodb://192.168.0.16,192.168.0.23,192.168.0.17/test', function(err, db) { if(err){ console.error("Error! Exiting... Must start MongoDB first"); console.log("The error is :::::::::::::::", err); process.exit(1); }else{ console.log("Connection successful"); } });
我也做过副本集。 我有三台服务器,一台作为主要服务器,另一台作为次要服务器。使用 rs.status(),我可以看到所有服务器工作正常。但我仍然收到相同的错误。

mongodb 版本 = 2.2.3 mongdb 库版本 = 1.3.18

{
    "set" : "rs01",
    "date" : ISODate("2015-01-09T07:35:15Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "192.168.0.23:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 2079,
            "optime" : Timestamp(1420787077000, 1),
            "optimeDate" : ISODate("2015-01-09T07:04:37Z"),
            "lastHeartbeat" : ISODate("2015-01-09T07:35:13Z"),
            "pingMs" : 0
        },
        {
            "_id" : 1,
            "name" : "192.168.0.16:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 2088,
            "optime" : Timestamp(1420787077000, 1),
            "optimeDate" : ISODate("2015-01-09T07:04:37Z"),
            "self" : true
        },
        {
            "_id" : 2,
            "name" : "192.168.0.17:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 1838,
            "optime" : Timestamp(1420787077000, 1),
            "optimeDate" : ISODate("2015-01-09T07:04:37Z"),
            "lastHeartbeat" : ISODate("2015-01-09T07:35:14Z"),
            "pingMs" : 0
        }
    ],
    "ok" : 1
}

但我不知道可能是什么问题。这个问题也发生在我的生产设置中。

【问题讨论】:

标签: node.js mongodb replication


【解决方案1】:

好吧,向前看。您确定您正在运行 mongod 服务器吗?如果是这样,它们是否在默认的 27017 端口上运行(因为您没有指定端口号,这将是默认值)。 我会进一步简化你的连接字符串,只使用 1 个服务器 url——为了调试。我还将明确指定一个端口号以将其全部拼写出来。 这些服务器之一是主服务器吗?你能从 Mongo shell 连接到它吗?那将是第一次测试。

【讨论】:

  • 当我尝试使用单个服务器时,它工作正常,但不止一个导致错误。我还没有在服务器之间进行任何副本集配置,我想这样做吗?因为端口是默认端口“27017”,所以我没有在字符串中添加
  • 如果您还没有配置副本集,那么您将拥有完全不同且彼此独立的服务器——它们都是主要的。我认为您不能连接到多个主服务器,这没有意义。所以要么坚持使用一台服务器,要么制作一个真正的副本集
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 2017-08-09
相关资源
最近更新 更多