MongooseServerSelectionError:在节点 v17 中连接 ECONNREFUSED ::1:27017 并且 mongo 正在运行

Hic*_*cup 1 mongodb node.js

节点应用程序在启动时抛出异常

MongooseServerSelectionError: connect ECONNREFUSED ::1:27017
    at NativeConnection.Connection.openUri (/Users/aadak/Workspace/node/ticket-status-tacker/node_modules/mongoose/lib/connection.js:846:32)
    at /Users/aadak/Workspace/node/ticket-status-tacker/node_modules/mongoose/lib/index.js:351:10
    at /Users/aadak/Workspace/node/ticket-status-tacker/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at new Promise (<anonymous>)
Run Code Online (Sandbox Code Playgroud)

我可以看到 mongo 正在运行

aadak@aadak-a01 mongo-backup % brew services list                       
Name              Status  User  File
mongodb-community started aadak ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist
Run Code Online (Sandbox Code Playgroud)

我的 mongo uri 定义为

"mongoURI": "mongodb://localhost:27017/ticketDB"
Run Code Online (Sandbox Code Playgroud)

连接到 mongo 的代码

const mongoose = require("mongoose");
const config = require("config");
const dbURI = config.get("mongoURI");
const logger = require('./winston');

const connectDB = async () => {
  try {
    await mongoose.connect(dbURI, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useCreateIndex: true,
      useFindAndModify: false,
    });
    logger.info("mongo db connected");
  } catch (err) {
    console.error(err);
    // exit process with failure.
    process.exit(1);
  }
};
module.exports = connectDB;
Run Code Online (Sandbox Code Playgroud)
  • 操作系统版本:11.6.1
  • 节点版本:17.0.1
  • 蒙戈版本:5.0.3

Hic*_*cup 6

我正在使用节点v17.0.1。Node v17 更喜欢 IPv6 地址而不是 IPv4。但 mongo 默认配置为 ipv4。

IPv4配置

net:
  port: 27017
  bindIp: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

需要将其更改为:

  net:
      ipv6: true
      port: 27017
      bindIpAll: true


OSX path : /usr/local/etc/mongod.conf
Ubuntu Path: /etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)

然后重启mongo。

https://dba.stackexchange.com/questions/173781/bind-mongodb-to-ipv4-as-well-as-ipv6/302609#302609