【问题标题】:MongoDB refuses Connection on Windows 10 machineMongoDB 在 Windows 10 机器上拒绝连接
【发布时间】:2018-10-03 16:52:56
【问题描述】:

我正在我的 Windows 10 机器上运行 Node.js 应用程序。我已经像这样安装和设置了 Mongoose:

// Init Database
var mongoose = require("mongoose");
var mongoDB = "mongodb://127.0.0.1/sampledata"
mongoose.connect(mongoDB);
var db = mongoose.connection;
// Check DB connection
db.once("open", function(){
    console.log("Connected to MongoDB");
});
// Check for DB errors
db.on("error", function(err){
    console.log(err);
});

现在,当我使用nodemon 启动服务器时,控制台中出现以下错误:

{ MongoNetworkError: failed to connect to server [127.0.0.1:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
  at Pool.<anonymous> (C:\Users\...\node_modules\mongodb-core\lib\topologies\server.js:564:11)
  at emitOne (events.js:96:13)
  at Pool.emit (events.js:188:7)
  at Connection.<anonymous> (C:\Users\...\node_modules\mongodb-core\lib\connection\pool.js:317:12)
  at Connection.g (events.js:291:16)
  at emitTwo (events.js:106:13)
  at Connection.emit (events.js:191:7)
  at Socket.<anonymous> (C:\...\node_modules\mongodb-core\lib\connection\connection.js:246:50)
  at Socket.g (events.js:291:16)
  at emitOne (events.js:96:13)
  at Socket.emit (events.js:188:7)
  at emitErrorNT (net.js:1278:8)
  at _combinedTickCallback (internal/process/next_tick.js:74:11)
  at process._tickCallback (internal/process/next_tick.js:98:9)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ]
}

当我尝试通过控制台启动 mongo 时,出现以下错误:

C:\Program Files\MongoDB\Server\4.0\bin>mongo
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
2018-10-03T19:05:24.194+0200 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte (in english: A connection couldn't be established, because the target computer has refused the connection). :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

我以前从未遇到过这个错误,听起来很愚蠢,昨天一切正常。没有更改代码或任何东西,所以我猜这一定是我的计算机的问题。 你们知道什么可能导致这个错误吗?

【问题讨论】:

  • 你在你的系统上启动了mongo吗?
  • 我试过了,但无法连接。我用相应的控制台输出更新了问题
  • 你确定系统上正在运行 mongodb 尝试运行 mongod --dbpath="yourdbpathhere"
  • 直到今天它都运行良好。运行mongid --dbpath="..." 导致无限等待连接打开

标签: node.js mongodb express mongoose database-connection


【解决方案1】:

TL;DR

启动mongod服务器

mongod

打开另一个终端窗口

启动 mongo shell

mongo

加长版:

以管理员身份打开命令提示符并运行netstat -anb,查看mongodb监听的端口(通常为27017)。如果您没有看到 mongo 的列表,则表示 mongod 没有运行,因此请继续从 mongodb 二进制文件启动 mongod.exe(或者如果设置了环境变量,请在 cmd 的任何位置运行 mongod)。

如果这不起作用,您的防火墙可能阻止了对该端口的访问,因此请检查一下

【讨论】:

    【解决方案2】:

    我也遇到了这个错误。在我的例子中,我试图升级到 MongoDB 4.0,而没有先升级到 3.6。
    如果您最近更新了 MongoDB,请参阅 https://docs.mongodb.com/manual/release-notes/4.0/#upgrade-procedures

    【讨论】:

      猜你喜欢
      • 2017-08-05
      • 2019-06-23
      • 2018-08-27
      • 2021-06-30
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 2019-12-09
      • 2019-02-04
      相关资源
      最近更新 更多