Windows 系统下的 MongoDB 单机部署

简介: 本文详细介绍 MongoDB 在 Windows 和 Linux 系统中的单机部署方法,涵盖下载安装、目录配置、服务启停、Shell 与 Compass 连接等步骤,助你快速搭建开发与生产环境。

当然可以!以下是根据你提供的内容整理的一篇结构清晰、可独立复制使用的文章,标题为:


MongoDB 是一款灵活高效的文档型数据库,适用于快速开发和高并发场景。在学习或小规模生产环境中,单机部署是最常见的入门方式。本文将详细介绍如何在 WindowsLinux 系统中完成 MongoDB 的安装、配置、启动、连接及关闭操作。

1. 下载与安装

MongoDB 官方提供预编译的 Windows 安装包(支持 32 位和 64 位),推荐从 MongoDB Community Download Center 下载。

版本选择建议

MongoDB 版本格式为 x.y.z,其中:

  • y 为偶数 → 稳定版(如 4.0.10、5.0.18)  
  • y 为奇数 → 开发版(不建议生产使用)
    建议选择最新的稳定版。

下载后解压到指定目录(如 D:\mongodb),无需运行安装程序。

2. 创建数据目录

在解压目录下手动创建用于存储数据的文件夹,例如:

D:\mongodb\data\db

3. 启动 MongoDB 服务

方式一:命令行参数启动(适合测试)

打开命令提示符,进入 bin 目录,执行:

mongod --dbpath=..\data\db

默认监听端口为 27017。若需修改端口,可添加 --port=27018

建议:将 bin 目录加入系统环境变量 PATH,以便全局使用 mongodmongo 命令。

方式二:配置文件启动(推荐用于长期运行)

  1. 在解压目录下新建 config 文件夹,创建配置文件 mongod.conf,内容示例如下:
systemLog:
  destination: file
  path: "D:/mongodb/log/mongod.log"
  logAppend: true
storage:
  dbPath: "D:/mongodb/data/db"
  journal:
    enabled: true
net:
  port: 27017
  # bindIp: 127.0.0.1  # 若需远程访问,可注释或添加IP
processManagement:
  fork: false  # Windows 不支持 fork,此项可省略

注意事项

  • 路径中的反斜杠 \ 需改为 /\\
  • 不要使用 Tab 缩进,必须用空格;
  • 路径无空格时,建议不加引号,避免 YAML 转义错误。
  1. 启动命令:
mongod -f ../config/mongod.conf
# 或
mongod --config ../config/mongod.conf

4. 使用 Shell 连接 MongoDB

在命令行中输入:

mongo
# 或指定地址端口
mongo --host=127.0.0.1 --port=27017

常用命令:

  • show databases:查看已有数据库
  • use <dbname>:切换数据库
  • exit:退出 Shell

提示:MongoDB Shell 是基于 JavaScript 的解释器,支持 JS 语法。

5. 使用 Compass 图形化客户端

从官网下载 MongoDB Compass,安装或解压后运行 MongoDBCompassCommunity.exe

在连接界面填写:

  • Hostname: localhost
  • Port: 27017

点击“Connect”即可可视化管理数据库。


二、Linux 系统下的 MongoDB 单机部署(生产推荐)

1. 下载与解压

# 下载(以 4.0.10 为例)
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.10.tgz
# 解压
tar -xvf mongodb-linux-x86_64-4.0.10.tgz
# 移动到标准目录
sudo mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb

2. 创建数据与日志目录

sudo mkdir -p /mongodb/single/data/db
sudo mkdir -p /mongodb/single/log

3. 编写配置文件

创建 /mongodb/single/mongod.conf

systemLog:
  destination: file
  path: "/mongodb/single/log/mongod.log"
  logAppend: true
storage:
  dbPath: "/mongodb/single/data/db"
  journal:
    enabled: true
processManagement:
  fork: true  # 后台运行(Linux 支持)
net:
  bindIp: localhost,192.168.0.2  # 根据需要配置绑定IP
  port: 27017
setParameter:
  enableLocalhostAuthBypass: false

4. 启动服务

/usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf

成功启动后会显示:

child process started successfully, parent exiting

验证进程:

ps -ef | grep mongod

注意:若远程无法连接,请检查防火墙设置:

systemctl stop firewalld        # 临时关闭
systemctl disable firewalld     # 永久禁用(测试环境)

5. 连接测试

  • Shell 连接
/usr/local/mongodb/bin/mongo --port 27017
  • Compass 连接
    在本地 Compass 中填写服务器 IP 和端口(确保网络和防火墙允许)。

6. 停止 MongoDB 服务

方法一:快速关闭(不推荐生产使用)

# 查找进程ID
ps -ef | grep mongod
# 发送 SIGINT 信号(等效 Ctrl+C)
kill -2 <PID>

若因异常关闭导致锁文件残留,可手动清理并修复:

rm -f /mongodb/single/data/db/*.lock
/usr/local/mongodb/bin/mongod --repair --dbpath=/mongodb/single/data/db

方法二:标准关闭(推荐)

mongo --port 27017
use admin
db.shutdownServer()

此方式确保数据安全写入,避免损坏。


总结

无论是 Windows 开发测试,还是 Linux 生产部署,MongoDB 的单机安装流程都相对简单。关键在于:

  • 正确配置 dbPath 和日志路径;
  • 使用 YAML 格式编写配置文件(注意缩进与路径转义);
  • 优先采用 配置文件 + 标准关闭 的方式保障数据一致性。

完成单机部署后,即可开始学习 MongoDB 的 CRUD 操作、索引优化、聚合查询等核心功能,为后续集群部署打下坚实基础。



相关文章
|
jenkins 测试技术 持续交付
提升软件测试效率的创新实践
在软件开发过程中,测试环节扮演着至关重要的角色。本文探讨了如何通过创新的方法和工具,提高软件测试的效率和质量。我们将从自动化测试、持续集成与持续部署(CI/CD)、测试驱动开发(TDD)三个方面,详细介绍这些技术如何改变传统的测试流程,帮助团队更快地发现和修复缺陷,最终实现更高质量的软件交付。
485 67
|
2月前
|
数据采集 存储 人工智能
从0到1:天猫AI测试用例生成的实践与突破
本文系统阐述了天猫技术团队在AI赋能测试领域的深度实践与探索,讲述了智能测试用例生成的落地路径。
从0到1:天猫AI测试用例生成的实践与突破
|
人工智能 自然语言处理 搜索推荐
AI战略丨SaaS 遇见 AI,企业教培开启新范式
“我们会不断完善整体的工程能力,争取以最低的成本,帮助用户训练他们所需要的、好用的 AI 产品。”
|
安全 NoSQL 程序员
老程序员分享:mongodb4.xxx安装,和基本配置
老程序员分享:mongodb4.xxx安装,和基本配置
204 0
|
数据库连接 网络安全 数据库
Could not create connection to database server.Attempted reconnect 3 times. Giving up.
这篇文章提供了解决数据库连接问题的方法,建议在连接字符串后添加`?serverTimezone=UTC`来指定时区,并检查网络设置、连接属性、驱动版本以及是否需要SSH或SSL连接。
Could not create connection to database server.Attempted reconnect 3 times. Giving up.
|
安全 Java API
【Java】已解决java.lang.SecurityException异常
【Java】已解决java.lang.SecurityException异常
2312 0
|
算法 Oracle Java
一文详解|从JDK8飞升到JDK17,再到未来的JDK21
本文深入浅出地解析了从JDK8到JDK17版本升级的新特性,并展望后续将会更新的JDK21.
11896 8
|
存储 SQL 大数据
GLM(Generalized Linear Model)大模型-大数据自助查询平台
GLM(Generalized Linear Model)大模型-大数据自助查询平台
504 2
|
弹性计算 安全 网络安全
基于阿里云云平台快速实现网络入侵检测 (IDS) 及网络安全监视 (NSM)
数据包捕获是一个重要组件,可以实施网络入侵检测系统 (IDS) 并执行网络安全监视 (NSM)。 我们可以借助开源 IDS 工具来处理数据包捕获,并检查潜在网络入侵和恶意活动的签名。 使用网络观察程序提供的数据包捕获,可以分析网络中是否存在任何有害入侵或漏洞,Suricata 就是这样的一种开源工具,它是一个 IDS 引擎,可使用规则集来监视网络流量,每当出现可疑事件时,它会触发警报。 Suricata 提供多线程引擎,意味着它能够以更高的速度和效率执行网络流量分析,在本文中将会介绍到如何在 ECS 中使用Suricata来对网络进行入侵检测,同时并根据Suricata中给定的威胁规则匹配的
2151 0
基于阿里云云平台快速实现网络入侵检测 (IDS) 及网络安全监视 (NSM)