【问题标题】:MongoError: failed to connect to server [<docker-machine>:<port>] on first connectMongoError:第一次连接时无法连接到服务器 [<docker-machine>:<port>]
【发布时间】:2019-07-11 17:44:15
【问题描述】:

尝试使用 mongoose 库将 MongoDB 与 replicaSet 连接字符串连接起来。但是没有在生产服务器上连接,它给我一个错误:

name: 'MongoError',
 message: 'failed to connect to server [test-machine:27018] on first connect [MongoError: getaddrinfo ENOTFOUND test-machine:27018 test-machine:27018]'   
var mongoose = require('mongoose') //version 4.13.6

var options = { "db": {
        "readPreference": "secondaryPreferred"
    },
    "replset": {
        "rs_name": "testReplica",
    }
}

var connection = mongoose.createConnection(`mongodb://localhost:27018/`,options);

connection.on('open', function () {
    console.log('We are connected')
})

connection.on('error', function (err) {
    console.log('Something went wrong')
    console.log(err)
})

注意:上面的代码可以在我的本地机器中正常工作。

【问题讨论】:

  • 默认端口是 27017 可以试试吗?此外,您可能需要在其 URL 的末尾包含您的数据库名称
  • @molamk 我的 mongo-docker 在 27018 端口上运行,我也尝试过使用数据库名称。但它仍然抛出同样的错误。
  • 您可能希望将docker 标签添加到您的问题中。还有Dockerfile和相关配置

标签: node.js mongodb docker mongoose replicaset


【解决方案1】:

这是一个DNS解析错误。

将测试机添加到我的 /etc/hosts 文件中

【讨论】:

    猜你喜欢
    • 2017-04-24
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 2018-09-01
    相关资源
    最近更新 更多