无法连接到我的 MongoDB 数据库,在 Mongodb Compass 上收到此错误“Server Selection Timed Out After 3000ms”

Posted

技术标签:

【中文标题】无法连接到我的 MongoDB 数据库,在 Mongodb Compass 上收到此错误“Server Selection Timed Out After 3000ms”【英文标题】:Can't connect to my MongoDB DataBase, getting this error "Server Selection Timed Out After 3000ms" on Mongodb Compass 【发布时间】:2020-07-15 10:29:16 【问题描述】:

这是我在终端上显示的错误。


message: 'connect ECONNREFUSED 127.0.0.1:27017',
  name: 'MongooseServerSelectionError',
  reason: TopologyDescription 
    type: 'Single',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map  'localhost:27017' => [ServerDescription] ,
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  ,
  [Symbol(mongoErrorContextSymbol)]: 

我的连接数据库的代码如下:-

const mongoose = require("mongoose");

mongoose
  .connect("mongodb://localhost:27017/playground", 
    useNewUrlParser: true,
    useUnifiedTopology: true
  )
  .then(() => 
    console.log("database connected");
  )
  .catch(err => 
    console.log("Could not connect", err);
  );

在我关闭笔记本电脑之前一切正常。我不知道为什么 Mongodb 罗盘向我显示此错误“服务器选择在 30000 毫秒后超时”,我在本地主机上工作,只有

【问题讨论】:

试试这个作为你的 URI - "mongodb://localhost/playground" 另外让我知道错误信息:mongoose.Promise = global.Promise; mongoose.connection.on("error", error => console.error(→ $error.message); // 告诉你连接mongodb是否成功); @Leafyshark 我尝试将“mongodb://localhost/playground”作为我的网址并收到此错误“ECONNREFUSED 127.0.0.1:27017”。 【参考方案1】:

您说“...在您关闭计算机之前一切正常...”,很可能mongod 进程在关闭时退出。您能否尝试重新启动mongod 进程并再次连接,有关如何启动该进程的详细信息在这里For Windows 和For Mac。

为避免在您重新启动或关闭系统时再次出现此类问题,请考虑将 mongod 进程作为服务启动,具体操作方式取决于您使用的操作系统,但是,您可以找到完整的说明集在安装页面。例如,如果您使用的是 Mac,则说明为 here。

【讨论】:

【参考方案2】:

我在终端中运行了 mongo 和 mongod,但它不起作用。

windows的解决方案,但应该和mac类似

在windows上打开任务管理器|| Ctrl + shift + ESC > 选择服务选项卡 > 搜索 mongo db > 右键单击​​ > 启动服务

【讨论】:

【参考方案3】:

扩展@Maduekew的回答,在Windows上,点击服务只过滤掉服务,然后搜索MongoDB,如果状态栏显示Stopped,右击然后选择Start

【讨论】:

以上是关于无法连接到我的 MongoDB 数据库,在 Mongodb Compass 上收到此错误“Server Selection Timed Out After 3000ms”的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes node.js 容器无法连接到 MongoDB Atlas

无法连接到我的 MongoDB 数据库,在 Mongodb Compass 上收到此错误“Server Selection Timed Out After 3000ms”

无法使用 mongoose 连接到 mongodb 数据库

为啥 MongoDB 无法连接到我的 NodeJS 应用程序?

Heroku 无法连接到我的 mongodb 地图集

连接到 MongoDb Atlas 服务器时出错