尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Windows下MongoDB保姆级安装教程:避坑、配置与DBeaver连接

发布时间:2026/9/10 5:14:55

资讯中心
01
ARTICLE

Windows下MongoDB保姆级安装教程:避坑、配置与DBeaver连接

Windows下MongoDB保姆级安装教程:避坑、配置与DBeaver连接
1. 安装前的准备工作先搞清楚MongoDB到底要装什么1.1 MongoDB是个什么数据库为什么这么多人装它MongoDB是目前使用率最高的NoSQL数据库之一它不按传统的关系型表结构存数据而是用类似JSON的文档格式来存储也就是BSON格式。如果你之前只用过MySQL、Oracle这类关系型数据库第一次接触MongoDB时最需要转变的观念就是不需要预先设计表结构不需要写SQL数据想怎么放就怎么放随时可以调整字段。这种灵活度对于快速迭代的业务场景来说体验是完全不同的。举个例子在MySQL里你要给用户表加一个字段得先ALTER TABLE在MongoDB里直接往集合里插入一条带新字段的文档就行其他老文档没有这个字段也完全不影响。这就让很多创业团队、敏捷开发项目、以及需要频繁变更数据结构的系统天然倾向于选MongoDB。再加上它原生支持水平扩展、内置分布式集群方案可以说是很多互联网应用的默认数据库选项之一。这篇保姆级教程要做的就是带你从零开始在Windows环境下把MongoDB装好、跑起来、连上可视化工具、最终能正常做增删改查。整个过程中最容易踩坑的安装失败、服务启动失败、连接不上数据库这些问题我都会结合实际操作中的经历把原因和解决方案一并说清楚保证你每一步都能照着做。1.2 动手安装前先把这四件事确认清楚很多人装MongoDB失败不是操作错了而是装之前没想清楚装哪个版本、用哪种方式、装到哪个目录。这里我强烈建议在下载安装包之前先花五分钟确认下面四件事CPU架构现在Windows电脑基本都是64位x64如果你还是老旧的32位系统那基本与新版MongoDB无缘了。可以在此电脑上右键选择属性查看系统类型。操作系统版本MongoDB 7.0及之后的版本官方只支持Windows 10/11和Windows Server 2019以上系统。还在用Windows 7、Windows 8的朋友建议老老实实装MongoDB 4.4左右的旧版本或者升级系统。磁盘空间MongoDB本身安装包很小但数据库文件后续会快速增长建议至少预留5GB以上空间给数据目录。安装方式官方提供了两种主流安装方式一个是.msi安装包图形化向导一个是.zip免安装压缩包解压即用。很多人不知道的是绝大多数安装失败问题用免安装版都能绕过去后面我会详细讲。1.3 版本选择不要盲目追求最新版MongoDB的版本演进大致是4.x、5.x、6.x、7.x这条线目前8.x也已经发布了。那是不是装最新版就最好我的建议是别盲选通常用稳定版即可。根据我自己的经验MongoDB 4.4虽然不是最新但它是很多教学材料、企业内部老系统的主力版本网上资料最多遇到问题最好搜。如果你是学习用途、跟着教程走选这个版本不容易踩坑。MongoDB 7.0是新特性比较丰富的一个大版本加了可查询加密、新的聚合阶段等能力如果你想体验新功能、或者新项目正式开发可以考虑但要注意客户端工具和驱动版本要配套。还有一点很关键MongoDB很少出补丁级安装包一般小版本如6.0.12、7.0.14这种都是修复了重要bug的版本下载时尽量选你当前大版本下的小版本里最新的一个。2. Windows下安装MongoDBMSI安装包与免安装版两条路线2.1 路线一MSI安装包适合第一次装的朋友在MongoDB官网下载页面选择Windows平台的.msi文件注意区分是当前版本还是旧版本。下载完成后双击运行基本就是一路Next。但有几处细节一定要看清楚了Install MongoDB Compass这一步建议把勾选去掉。Compass是MongoDB官方自带的可视化工具虽然功能不错但体积大、还经常拖慢安装速度后面我们完全可以用DBeaver等工具来替代没必要在这里一起装。即便你想用Compass也可以在MongoDB装好之后单独下载安装。安装方式选择Complete还是Custom时新手可以直接Complete。不过我更推荐Custom因为默认安装目录是C盘而MongoDB后续数据文件默认也在C盘C盘小的朋友后面会很痛苦。用Custom把安装目录改到D:\MongoDB这种路径后面维护、备份、迁移都方便得多。安装完成后默认会自动把MongoDB注册成Windows服务服务名为MongoDB并且开机自启。这一步正常来说都应该是成功的如果没有成功多半就是我在下一章要讲的权限或目录问题。装好之后在命令行输入mongod --version看到版本号输出说明程序已经能正常识别了。注意如果你是跟着安装教程一路Next走完的中途没有去改数据目录那MongoDB的默认数据目录是C:\Program Files\MongoDB\Server版本号\data。但新版安装时如果你选择默认的Complete安装它并不会自动为你创建db目录和log目录这就会导致后面服务启动失败。很多人恰恰是这一步没设置对才反复报错。2.2 路线二免安装版Zip包绕开安装失败最有效的办法无数人在MSI安装时会遇到报错最常见的就是那句The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2337或类似的Installer错误。这种情况除了换版本、重下安装包之外一个非常实用的替代方案就是直接用免安装版。免安装版的流程极其简单下载Windows平台的zip压缩包后解压到你想要的位置比如D:\MongoDB。解压完成后目录里会有一个bin文件夹接下来要做的就是手动创建数据目录和日志目录。D:\MongoDB\data\db D:\MongoDB\data\log然后打开命令行进入到bin目录执行mongod --dbpath D:\MongoDB\data\db --logpath D:\MongoDB\data\log\mongod.log --logappend这段命令的意思是指定数据目录为db指定日志文件的写入路径并且用追加模式写日志避免每次启动覆盖掉历史日志。执行后如果没有任何报错输出终端保持在运行状态就说明MongoDB已经成功启动了。这种方式完全避开了MSI安装器本身的坑也不需要对Windows系统做太多修改。唯一的缺点是手动启动时命令行窗口不能关关了MongoDB服务就停了。所以后面你还要把它注册成Windows服务让它在后台稳定运行。2.3 环境变量配置装完必须做的一步不然每次都要进bin目录不管是MSI安装还是免安装版我都建议你顺手把MongoDB的bin目录加到系统环境变量里。原因是很多人安装完成后打开一个新的命令行窗口输入mongod却提示mongod 不是内部或外部命令然后一脸懵。这实际上就是环境变量没配好。具体操作右键此电脑 - 属性 - 高级系统设置 - 环境变量在系统变量中找到Path点击编辑然后新建把bin目录路径加进去比如D:\MongoDB\bin。确定保存后重新打开命令行输入mongod --version能识别就说明环境变量配好了。配好环境变量的意义在于后面无论是启动服务、执行mongo命令、还是写脚本进行备份都不用每次切换到MongoDB的安装目录直接在任意路径下敲命令就行。这是非常基础但极其实用的一步。3. 安装失败的排查实录别慌都是常见问题3.1 The installer has encountered an unexpected error...到底是怎么回事只要是搜索过MongoDB安装失败的人大概率都见过这句提示。它翻译过来就是安装程序遇到意外错误但具体错误原因却没告诉你。我在不同电脑上遇到过四五次归纳起来主要是这几种情况安装包文件损坏下载过程中网络不稳定导致.msi文件不完整。这种情况重新下载一次就好我遇到过两次都是这个原因。Windows Installer服务问题Windows自带的安装服务版本过旧或者状态异常需要在服务管理器里确认Windows Installer服务处于启动状态。杀毒软件拦截部分安全软件会把MongoDB的服务注册、文件写入操作当成可疑行为拦截掉。装的时候暂时退出杀毒软件或允许信任就能解决。权限不足双击安装包时没有选择以管理员身份运行导致某些注册表、系统服务相关的操作没有足够权限执行。排查思路是这样先看错误码如果是2337或者类似的通用安装错误码优先考虑重新下载。如果连续两次都报同样的错误再考虑是杀毒或权限问题。一个比较迂但有效的办法就是我前面说的直接改用zip免安装版这类问题直接就不存在了。3.2 安装后服务启动失败日志才是真正的病历本MSI安装成功后更大的概率是在服务启动这一步出问题。最常见的现象是你打开服务管理器看到MongoDB服务处于已停止状态你点启动它要么立即闪一下退回停止状态要么直接弹窗报错。这时候不要瞎猜原因直接去看MongoDB的日志文件。日志默认位置是C:\Program Files\MongoDB\Server版本号\log\mongod.log用文本编辑器打开看最后几十行。我见过非常多的新手包括我自己第一次装时也是这样根本没创建db目录日志里就会明确写Cannot find data directory之类的内容。还见过另外一个高频问题就是服务启动路径里的dbPath不存在或者bin目录和data目录的权限不够。如果日志里没有明显错误还有一种可能你在安装完成后手动运行过一次mongod命令占用了27017端口Windows服务再去启动同一个端口自然起不来。排查方式就是关掉手动启动的那个命令行窗口或者打开任务管理器结束掉mongod进程然后再启动服务。我自己的经验是超过六成的服务启动失败本质就是数据目录没建好和端口被占用这两件事。先把这两点排除掉再去考虑更复杂的原因。3.3 安装失败排查速查表现象主要可能原因解决思路安装包报unexpected error安装包损坏、权限不足、Windows Installer问题重新下载以管理员身份运行修复Windows Installer服务装好了但mongod不是内部命令环境变量未配置手动把bin目录加入Path服务启动后立即停止数据目录或日志目录不存在创建dbpath指定的目录服务启动时端口被占用已经有一个mongod进程在运行结束旧进程或修改服务端口连接localhost:27017失败服务没起来或27017被其他程序占用检查服务状态用netstat查看端口安装后没有自动生成data目录新版MSI不会自动创建数据目录手动创建data/db和log目录这张表是我在多个真实环境里总结出来的覆盖了绝大多数MongoDB安装失败的求助帖子。你在自己动手时遇到问题先对号入座能省下大量排查时间。4. 启动与初始化把MongoDB真正跑起来4.1 手动启动与基础参数说明打开命令行直接执行mongod --dbpath D:\MongoDB\data\db --logpath D:\MongoDB\data\log\mongod.log --logappend这里命令行窗口会像被卡住一样不断输出日志信息这是正常现象说明mongod进程在前台运行。--dbpath参数指定数据库文件存放位置--logpath参数指定日志文件位置--logappend表示日志以追加方式写入。如果你不带这些参数直接敲mongod在Windows下它会默认去C:\data\db目录找数据如果那个目录不存在就会报错退出。还有几个比较常用的参数你可能用得上--port指定服务端口默认27017如果被占用可以改成27018之类的其他端口。--bind_ip默认绑定localhost也就是只允许本机访问。如果希望局域网内其他机器也能连接可以设置成0.0.0.0但需要注意安全风险最好配合认证一起用。--auth开启用户名密码认证生产环境必开。4.2 注册成Windows服务让MongoDB开机自启手动启动只适合临时测试想要长期稳定使用还是得把MongoDB注册成Windows服务。如果你是用MSI安装包安装的这步通常已经自动完成。如果你是免安装版或者MSI安装时服务没注册成功可以用命令手动注册。先把之前手动启动的mongod进程退出直接关闭命令行窗口即可然后以管理员身份打开命令行执行mongod --dbpath D:\MongoDB\data\db --logpath D:\MongoDB\data\log\mongod.log --install看到提示Service successfully installed之类的信息说明服务注册成功。然后打开服务管理器WinR输入services.msc找到MongoDB服务右键启动或者命令行执行net start MongoDB如果启动后仍然失败按照前面日志排查的思路去看日志。我把这个步骤放在前面强调就是不想你在后续章节操作到一半才发现MongoDB是个临时进程重启电脑数据连接全部丢失那种体验很糟糕。4.3 验证MongoDB是否正常命令行客户端初体验服务启动后验证方式非常简单。打开一个命令行窗口输入mongoshmongosh是新版MongoDB自带的客户端工具旧版本是mongo命令MongoDB 5.0之后全面切换为mongosh。连上之后命令行会变成类似这样test看到test这个提示符号说明你已经成功连上了本地MongoDB。可以输入db.runCommand({ ping: 1 })返回{ ok: 1 }就证明数据库完全正常。有些老教程会让你用mongo命令但6.0以上的MongoDB默认不再自带mongo shell需要单独安装所以直接用mongosh就行。这一步完成你的MongoDB安装才算真正告一段落。接下来进入更实用的阶段用可视化工具去管理数据。5. 可视化工具连接MongoDBDBeaver与数据可视化方案5.1 为什么推荐DBeaver而不是官方CompassMongoDB官方自带的Compass确实好用但它主要面向单数据库的管理如果你同时还要连MySQL、PostgreSQL、SQL Server、Redis这些数据源就得一个工具切换来切换去。DBeaver是一个开源的多数据库管理工具一个界面里管理各种数据库支持插件扩展社区版完全免费。对于经常需要和多种数据库打交道的人来说DBeaver比官方的Compass更顺手。你会搜索DBeaver如何连接MongoDB说明你大概率已经在用DBeaver管理其他数据库了。在DBeaver中连接MongoDB并不像连MySQL那样装好就能连因为它默认的驱动列表里不一定自带MongoDB驱动或者是需要联网下载驱动的。我第一次用DBeaver连MongoDB时就卡在驱动下载这一步拖了很久后来总结了完整过程给大家参考。5.2 DBeaver连接MongoDB的完整配置步骤第一步打开DBeaver在菜单栏找到数据库 - 新建数据库连接弹出的窗口里选择MongoDB。如果你在列表里找不到MongoDB说明你的DBeaver版本较老或安装时没有启用MongoDB插件去插件市场安装即可。第二步选择MongoDB后DBeaver会提示需要下载驱动。这里就是最容易卡住的地方默认会从Maven仓库下载mongodb-driver相关的jar包。如果你的网络访问Maven比较慢或者被限制下载往往会一直转圈或直接失败。解决办法是手动下载jar包然后在DBeaver的驱动设置里点击添加文件把它导入。要准备的包主要是mongodb-driver-coremongodb-driver-syncbson第三步在连接设置页面填写HostlocalhostPort27017Database可以不填默认连接后会展示所有数据库也可以在后面手动指定User/Password如果MongoDB开启了认证就填你创建的用户名密码没开认证的话留空即可填好后点击测试连接能通就说明连接成功。提示DBeaver的MongoDB驱动下载问题本质上是网络访问Maven仓库不稳定导致的。手动导入对应版本的jar包是最省心的方案。另外DBeaver连接MongoDB后查看数据的方式是类似表格化的展示跟原生的JSON文档样式有些差异需要稍微适应一下。5.3 其他常用的MongoDB可视化工具除了DBeaver和Compass还有几个工具也可以看情况选用Navicat for MongoDB界面做得比较好操作习惯跟Navicat系列一致适合平时用Navicat管理数据库的人。Studio 3T老牌的MongoDB工具功能很强大支持SQL查询、数据同步、可视化聚合管道但属于商业软件试用期过后要付费。Robo 3T曾被广泛使用但官方已经停止维护新用户不建议入坑。可视化工具这东西没有绝对的最好顺手最重要。我自己平时就是DBeaver为主、Compass补充——DBeaver用来做跨数据库的管理和日常查询Compass用来直观查看集合索引和聚合管道执行情况两者配合足够覆盖绝大部分场景。6. 初识MongoDB安装完成后必做的基础操作6.1 数据库、集合、文档三个核心概念MongoDB里最核心的三个概念是数据库Database、集合Collection、文档Document。数据库就是逻辑上的数据仓库一个MongoDB实例里可以创建很多个数据库比如用户库、订单库、日志库。集合类似于关系型数据库里的表但它没有固定的列结构里面存的是多条文档。文档则是MongoDB的最小数据单元本质上是BSON格式的键值对集合你可以把它理解成一条JSON记录。用生活化的类比来说数据库是一个大仓库集合是仓库里的一排货架文档是货架上一个个大小形状都可以不同的箱子。MySQL里的表就像是一排统一规格的货架每个格子的尺寸早就定死了MongoDB里的集合没有这种约束箱子里想装什么就装什么哪怕两个箱子内容完全不同也行。这就是文档型数据库最核心的无模式特点。6.2 连接数据库并完成第一批增删改查用mongosh连接到本地数据库之后我们来做一轮最基础的CRUD操作。先查看当前有哪些数据库show dbs默认只有admin、config、local三个库。接下来我们新建一个叫school的数据库在MongoDB里不需要单独执行create database命令直接向某个数据库写入数据数据库就会自动创建use school切换到这个库后我们往students集合里插入两条文档db.students.insertOne({ name: 小明, age: 18, score: 88 }) db.students.insertOne({ name: 小红, age: 19, score: 92, hobby: [reading, music] })注意第二条文档多了一个hobby字段这在MongoDB里完全没问题集合本身不会限制字段。然后我们查询db.students.find()看到两条文档都查出来就对了。再做一次条件查询db.students.find({ age: { $gte: 19 } })这个命令会返回所有age大于等于19的文档$gte就是大于等于的意思。修改操作db.students.updateOne({ name: 小明 }, { $set: { score: 90 } })把小明这条数据的score改成90。$set是关键它表示只修改指定字段不加$set的话整个文档都会被第二个参数替换掉这是新手最容易踩的坑。删除操作db.students.deleteOne({ name: 小红 })这样就把小红的数据删掉了。如果你打算删掉整个集台的所有文档可以用deleteMany({})但一定要在确认无误的前提下执行。6.3 索引、备份与恢复从能跑到用好只是完成增删改查还远不算会用MongoDB。任何数据库在数据量上来之后索引都是必须考虑的事情。创建索引的命令很简单db.students.createIndex({ name: 1 })这里的1表示按name字段升序建索引-1就是降序。索引能大幅提升查询性能我见过很多新手没有索引时查询几百条数据没感觉但到了几十万条的时候整个应用明显卡顿其实加个索引就能解决。备份和恢复也是必须掌握的技能。MongoDB提供了两个命令分别用于导出和导入BSON格式的数据mongodump --db school --out D:\backup执行后会在D:\backup目录下生成school库的备份文件。恢复时执行mongorestore --db school D:\backup\school这两组命令在日常开发、测试数据迁移、以及上线前的数据备份中非常常用。我在实际项目里就是靠定时mongodump任务来保证数据库的每日备份配好之后基本可以睡个安稳觉。7. MongoDB 7.0版本要点与学习路径建议7.1 MongoDB 7.0带来了什么变化如果你决定直接装MongoDB 7.0有几个新特性值得知道。首先是可查询加密Queryable Encryption它允许对加密字段做等值查询服务端全程都无法看到明文数据。不过目前这项功能的使用限制比较多普通项目不会一上来就用了解一下即可。其次是聚合管道的增强新版增加了一些新的聚合操作符和窗口函数数据分析场景下写管道更灵活。在性能层面7.0优化了复制集和分片集群的稳定性对于运维大规模集群的团队来说意义更大。另外它还改进了Change Streams的能力增加了$changeStreamSplitLargeEvent这个阶段让大文档变更事件可以被拆分传输这在业务上有实际价值。对于普通开发者来说7.0最大的影响其实是驱动版本要求更高了旧版本的客户端库可能无法正常连接所以在选择7.0的时候一定要确认你项目里使用的MongoDB Driver版本足够新否则会出现连不上、或者认证失败这类问题。7.2 安装完成后下一步该学什么这个章节其实是很多新手最关心的装好了接下来呢我建议的路线是先熟悉文档型数据建模的思维方式搞清楚什么时候该用嵌套文档什么时候该用引用关联。然后掌握索引与聚合框架这是MongoDB日常使用中最核心的两个能力。再看复制集和分片集群的原理不需要马上搭集群但一定要知道主从复制、故障转移这些概念。最后可以在真实项目里用起来比如用Spring Boot集成MongoTemplate实现一个带增删改查的小功能。这条路径看起来很长但每一步都是实战需要。以你既然已经花时间安装了MongoDB就说明有实践的需求和打算顺着这个路线走一年之内把MongoDB用熟练是完全可行的。安装只是起点后面的数据建模和查询优化才是真正拉开差距的地方。结尾的几句心里话从下载安装包到处理各种报错再到用DBeaver连上数据库做CRUD整个过程我踩过的坑远比文章里写的要多。第一次装的时候我也被The installer has encountered an unexpected error卡了两个小时后来气不过干脆下载了zip免安装版十分钟搞定。现在再遇到类似问题我的第一反应永远是先看日志再看端口和目录最后才考虑重装。这种排查思路适用于大多数数据库软件的安装问题。最后再分享一个小习惯我会在每一次装完MongoDB之后顺手把版本号、安装路径、数据目录、日志位置、启动命令这些信息写到一个专门的备忘文档里。这看起来多此一举但当你半年后重新回到一台旧电脑、或者帮同事处理问题的时候这份文档可以让你一眼就回忆起当时的全部配置省下重查资料的时间。这套保姆级教程帮你解决了安装和起步的问题接下来数据库世界里值得折腾的东西还很多祝你在MongoDB这条路上越走越顺。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。