MongoDB 装是装了,就是没跑起来。你用 mongosh 连接,得到"connection refused";或者你的应用直接抛出"failed to connect to server"的报错。

最常见的原因其实很简单:MongoDB 服务没启动。

在 Windows 11 上,MongoDB 是作为一个后台服务运行的。你得先让这个服务跑起来,才能连接数据库。有时候它会意外停止,有时候重启之后起不来,还有的时候它从一开始就没配置成自动启动。

这篇文章把在 Windows 11 上启动 MongoDB 服务的方法全讲一遍,从快捷的命令行方式到图形界面都有。我还会带你处理服务拒绝启动的情况——这种事发生的频率比你想的高。

先确认 MongoDB 服务是否在运行

动手启动之前,先摸清 MongoDB 服务当前的状态,这很重要。用下面的命令:

注意:如果你还没在 Windows 11 上装 MongoDB

用 PowerShell

打开 PowerShell,运行:

Get-Service MongoDB

用 PowerShell 检查 Windows 11 上 MongoDB 服务的状态

你会看到以下几种状态之一:

状态 含义
Running 服务正在运行并接受连接
Stopped 服务已安装但未运行
StartPending 服务正在尝试启动
StopPending 服务正在关闭

如果报错说服务不存在,那就是安装 MongoDB 时没有把它注册成服务。后面我会讲怎么修。

用命令提示符

```Bash/Shell sc query MongoDB

在输出里找"**STATE**"那一行,它会显示"RUNNING"或"STOPPED"。

![用命令提示符检查 Windows 11 上 MongoDB 服务的状态](/media/editor/Using-Command-Prompt-to-check-the-status-of-MongDB-service-on-Widows-11_20261104201932776686.png)

## 方法一:用命令提示符启动 MongoDB 服务

如果你手边已经开着终端,这是最快的方式。

以管理员身份打开命令提示符(右键开始按钮,选"**终端(管理员)**")。

**运行**:

```Bash/Shell
net start MongoDB


Successful output:
The MongoDB Server (MongoDB) service is starting.
The MongoDB Server (MongoDB) service was started successfully.

用命令提示符启动 MongoDB 服务

之后要停止服务:

net stop MongoDB

方法二:用 PowerShell 启动 MongoDB 服务

PowerShell 提供更细粒度的控制和更清晰的错误信息。

以管理员身份打开 PowerShell,运行:

```Bash/Shell Start-Service MongoDB

成功的话这条命令**没有任何输出**。要**确认**它生效了:

```Bash/Shell
Get-Service MongoDB

也可以把启动和查状态合并成一行:

```Bash/Shell Start-Service MongoDB; Get-Service MongoDB

![用 PowerShell 启动 MongoDB 服务](/media/editor/Start-MongoDB-Service-Using-PowerShell-1024x525_20261104202006475142.webp)

### MongoDB 服务常用的 PowerShell 命令

| 命令                      | 用途           |
| ------------------------- | -------------- |
| `Start-Service MongoDB`   | 启动服务       |
| `Stop-Service MongoDB`    | 停止服务       |
| `Restart-Service MongoDB` | 停止再启动服务 |
| `Get-Service MongoDB`     | 查看当前状态   |

## 方法三:用"服务"应用启动(图形界面)

如果你更习惯图形界面,Windows 11 内置了"服务"应用。

1. 按 `Win + R` 打开运行对话框
2. 输入 `services.msc`,回车
3. 往下翻,找到 **MongoDB Server**(或者就写 **MongoDB**)
4. 右键它,选**启动**

你也可以双击这个服务打开属性窗口,在里面配置启动行为。

![用 Windows 11 的"服务"应用启动 MongoDB 服务](/media/editor/Start-MongoDB-Service-Using-Windows-11-Services-App-GUI_20261104202019133180.webp)

### 让 MongoDB 自动启动

在服务属性窗口里:

1. 找到**启动类型**下拉框
2. 从"手动"改成**自动**
3. 点**应用**,再点**确定**

这样以后每次 Windows 开机,MongoDB 都会自动启动。

## 方法四:用任务管理器启动 MongoDB 服务

Windows 11 的任务管理器里有一个"服务"选项卡,用来快速管理服务很方便。

1. 按 `Ctrl + Shift + Esc` 打开任务管理器
2. 点顶部的**服务**选项卡
3. 往下翻找到 **MongoDB**
4. 右键,选**开始**

如果你本来就已经开着任务管理器,这个方法特别顺手。

![用任务管理器启动 MongoDB 服务](/media/editor/Start-MongoDB-Service-Using-Task-Manager_20261104202032232312.webp)

## 方法五:手动启动 MongoDB(不走服务)

有些时候你需要绕开 Windows 服务,直接运行 MongoDB。排查问题或者用自定义配置启动时,这就很有用。

以管理员身份打开命令提示符或 PowerShell,运行:

```Bash/Shell
mongod --dbpath "C:\Program Files\MongoDB\Server\8.2\data"

注意: 把里面的版本号换成你实际安装的版本。

手动启动 MongoDB(不走服务)

这样会在前台启动 MongoDB,你会在终端里直接看到日志输出。窗口只要开着,数据库就一直跑着。

要用自定义配置文件的话:

```Bash/Shell mongod --config "C:\Program Files\MongoDB\Server\8.2\bin\mongod.cfg"

这种模式下想停掉 MongoDB,按 `Ctrl + C`。

## MongoDB 服务起不来?常见修复方法

服务启动失败时,Windows 给的报错通常很含糊。下面是诊断和解决真正问题的方法。

### 报错:"由于登录失败而无法启动服务。"

这个报错是服务账户没有访问 MongoDB 目录的权限导致的。

**修复:**

1. 打开"服务"(`services.msc`)
2. 右键 MongoDB,选**属性**
3. 切到**登录**选项卡
4. 选择**本地系统账户**
5. 点**应用**,然后再试一次启动服务

### 报错:"系统找不到指定的路径。"

`mongod.cfg` 里配置的数据或日志目录不存在。

**修复:**

检查你的配置文件(通常在 `C:\Program Files\MongoDB\Server\8.2\bin\mongod.cfg`),确认这些路径真实存在:

```bash
storage:
  dbPath: C:\Program Files\MongoDB\Server\8.2\data
systemLog:
  destination: file
  path: C:\Program Files\MongoDB\Server\8.2\log\mongod.log

如果目录缺失,手动创建:

```Bash/Shell New-Item -ItemType Directory -Path "C:\Program Files\MongoDB\Server\8.2\data" -Force New-Item -ItemType Directory -Path "C:\Program Files\MongoDB\Server\8.2\log" -Force

### 报错:"Address already in use" 或 27017 端口冲突

有别的进程占用了 MongoDB 的默认端口。

**修复:**

找出是谁占用了 27017 端口:

```Bash/Shell
netstat -ano | findstr :27017

这会显示出进程 ID(PID)。找到并停掉冲突的进程:

```Bash/Shell tasklist /FI "PID eq " taskkill /PID /F

然后重新启动 MongoDB 服务。

### 服务启动后立刻停止

这通常说明配置有错,或者数据文件损坏了。

**修复:**

查看 MongoDB 日志文件了解详情:

```Bash/Shell
Get-Content "C:\Program Files\MongoDB\Server\8.2\log\mongod.log" -Tail 50

常见原因包括:

  • 磁盘空间不足
  • 锁文件损坏(删掉数据目录里的 mongod.lock)
  • 配置语法非法

清理残留锁文件:

```Bash/Shell Remove-Item "C:\Program Files\MongoDB\Server\8.2\data\mongod.lock" -Force

然后重启服务。

## 提示 MongoDB 服务不存在?

如果 `Get-Service MongoDB` 报错说找不到服务,说明安装 MongoDB 时没有装服务组件,或者它被删掉了。

### 把 MongoDB 注册成 Windows 服务

以管理员身份运行:

```Bash/Shell
mongod --config "C:\Program Files\MongoDB\Server\8.2\bin\mongod.cfg" --install

这样就把 MongoDB 注册成了服务,之后就能正常启动了:

```Bash/Shell net start MongoDB

### 移除并重装服务

如果服务已经损坏,先移除:

powershell

```Bash/Shell
mongod --remove

然后重装:

```Bash/Shell mongod --config "C:\Program Files\MongoDB\Server\8.2\bin\mongod.cfg" --install

## 验证 MongoDB 正在运行并能接受连接

启动服务之后,确认 MongoDB 已经准备好接受连接。

### 检查服务状态

```Bash/Shell
Get-Service MongoDB

应该显示"Running"。

用 MongoDB Shell 连接

```Bash/Shell mongosh

```bash
Successful connection shows:

Current Mongosh Log ID: ...
Connecting to:          mongodb://127.0.0.1:27017
Using MongoDB:          8.2.x
Using Mongosh:          2.x.x

test>

快速数据库测试

在 mongosh 里运行:

```Bash/Shell db.runCommand({ ping: 1 })

期望输出:

```Bash/Shell
{ ok: 1 }

这表示服务器能正常响应命令。

速查表:常用命令一览

任务 命令
查看服务状态 Get-Service MongoDB
启动服务(CMD) net start MongoDB
启动服务(PowerShell) Start-Service MongoDB
停止服务 net stop MongoDB
重启服务 Restart-Service MongoDB
手动启动 mongod --dbpath "C:\path\to\data"
安装为服务 mongod --config "path\to\mongod.cfg" --install
移除服务 mongod --remove

最后几句

掌握命令之后,在 Windows 11 上启动 MongoDB 服务就是几秒钟的事。日常开发的话,我建议把服务设成自动启动,这样就完全不用惦记它了。

如果碰上启动失败,日志文件是你最好的朋友。几乎所有问题都会在里面留下明确的报错,哪怕 Windows 只给你一句含糊的"服务启动失败"。

把这些 PowerShell 命令记熟。等你把 Get-Service MongoDB 和 Start-Service MongoDB 背下来之后,管理数据库就成了肌肉记忆。

本文所有内容都在 Windows 11 23H2 + MongoDB 8.2 上验证过。这些命令在更早的 MongoDB 版本上行为一致,只要把文件路径改成你的实际安装位置就行。