javascript 无法连接到我的MongoDB数据库,在MongoDB指南针上得到这个错误“服务器选择超时后3000ms”

xxb16uws  于 2022-12-25  发布在  Java
关注(0)|答案(5)|浏览(129)

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

{
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毫秒后服务器选择超时”,我只是在本地主机上工作

wtlkbnrh

wtlkbnrh1#

您说“...* 在您关闭计算机之前一切正常 *...",很可能是mongod进程在关机时退出。您可以尝试重新启动mongod进程并再次连接吗?有关如何启动该进程的详细信息,请参阅此处适用于Windows和适用于Mac。
为了避免在重新启动或关闭系统时再次出现类似问题,请考虑将mongod进程作为服务启动,具体操作方式取决于您使用的操作系统,不过,您可以在安装页面上找到完整的说明。例如,如果您使用的是Mac,说明就在这里。

nkkqxpd9

nkkqxpd92#

扩展@Maduekew的答案,在Windows上,单击服务以仅过滤出服务,然后搜索MongoDB,如果状态列显示Stopped,则右键单击,然后选择Start

w8ntj3qf

w8ntj3qf3#

我尝试从服务启动MongoDB,但它没有启动,所以我从终端运行mongod来启动MongoDB,并将连接字符串的localhost部分更改为127.0.0.1

rseugnpd

rseugnpd4#

我在终端上运行了mongo和mongod,但没有成功。
解决方案为windows,但应类似于mac
在windows上打开任务管理器||Ctrl + Shift + ESC〉选择服务选项卡〉搜索mongo数据库〉右键单击〉启动服务

hyrbngr7

hyrbngr75#

尝试使用127.0.0.1:27017而不是localhost:27017。它确实有效

相关问题