如何申请和配置MongoDB Atlas免费集群?

来源:网站建设作者:南京GEO公司头衔:草根站长
导读:本期聚焦于南京GEO公司创作的《如何申请和配置MongoDB Atlas免费集群?》,敬请观看详情。如果不准备在本地安装 MongoDB,但又需要一个能直接连接测试的线上实例,MongoDB Atlas 提供的 M0 免费集群可以快速满足这个需求。注册账号后默认有机会创建共享集群,不过真正容易出问题的地方在于数据库用户、IP 白名单和连接串处理。本文从零开始整理申请流程,说明云区域选择、集群命名、数据库账号创建、访问权限设置以及网络放行规则。接着会展示如何获取标准的 SRV 连接字符串,并通过 Node.js 驱动和 mongosh 两种方式验证连接是否正常。最后补充免费集群的规格限制、休眠机制和常见连接失败排查思路,帮助读者避开认证失败和超时问题。

MongoDB Atlas 的免费共享集群在学习 MongoDB 驱动、搭建个人项目原型以及做自动化测试时非常实用。它免去了本地安装数据库、管理进程和配置副本集的步骤,创建完成后可以得到一个三节点副本集形式的连接入口。虽然注册流程并不复杂,但免费集群有几处配置容易被忽略,比如数据库用户和网络白名单是两套独立控制,任何一处没配好都会导致连接请求被拒绝。下面按实际申请到连接成功的顺序说明。

如何申请和配置MongoDB Atlas免费集群?

一、注册账号并创建 M0 免费集群

进入 MongoDB Atlas 官网后,可以使用邮箱、Google 账号或 GitHub 账号完成注册。首次登录会引导创建一个组织(Organization)和一个项目(Project),组织名称主要用于团队协作和账单归集,不会影响后续的连接地址。项目可以理解为资源的隔离空间,免费集群、数据库用户和访问规则都挂在项目下面。

创建项目后,在 Database 区域点击 Create 或 Build a Cluster,选择共享类型(Shared)里的 M0 Sandbox。M0 是免费规格,提供 512MB 存储空间和共享内存,适合学习和原型验证。云厂商可以在 AWS、Google Cloud 和 Azure 之间选择,区域尽量靠近自己的应用服务器或本地开发机。集群名称可以保留默认的 Cluster0,也可以改成更容易识别的名称,这个名称会出现在连接串的主机名中。

提交创建后,集群状态会显示为 Deploying,通常需要等待一到三分钟。状态变为 Active 后,Atlas 已经为这个集群分配了副本集和对应的 SRV 地址。此时还不能直接写入数据,因为还没有配置数据库用户和访问白名单。

二、配置数据库用户与网络访问

数据库用户配置在 Security 下的 Database Access 页面完成。点击 Add New Database User,认证方式选择 Password,然后输入用户名和密码。权限方面,学习阶段可以勾选 Atlas admin 或者 Read and write to any database。Atlas admin 拥有项目级管理权限,Read and write to any database 则只对数据读写生效,按实际需求选择即可。密码最好使用复杂组合,并保存到密码管理器中,因为 Atlas 创建后不会再次展示明文密码。

网络白名单在 Security 下的 Network Access 页面配置。点击 Add IP Address,可以选择 Add Current IP Address 自动获取当前公网出口 IP。如果开发环境使用动态 IP,或者需要从多台机器访问,可以暂时添加 0.0.0.0/0 来允许所有地址访问。这个规则只适用于测试,绝对不能用于生产环境,否则等于把数据库暴露到公网且只靠账号密码保护。

数据库用户和网络白名单是两套独立的准入控制。用户验证身份,白名单限制来源地址,两者同时满足才能建立连接。免费集群默认没有预置用户,也不允许匿名访问,因此每一步都不能跳过。配置完成后等待几秒到一分钟,让规则下发到副本集节点。

三、获取连接字符串并验证连接

点击集群列表中的 Connect 按钮,会给出多种连接方式。选择 Drivers 可以看到带示例代码的连接地址,选择 Shell 可以直接复制 mongosh 命令。免费集群通常使用 SRV 格式,主机名以 mongodb+srv 开头,解析时会自动获取副本集节点信息。连接串的基本结构如下:

mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority

其中 username 和 password 需要替换为真实账号密码。如果密码中出现 @、/、:、?、# 等字符,必须进行 URL 编码,否则连接串会被错误切分。比如 @ 需要写成 %40,斜杠 / 写成 %2F。尽量在 Database Access 页面使用复制按钮生成带当前用户信息的连接串,可以减少手动拼接错误。

Node.js 环境可以用官方 mongodb 驱动快速验证连接。安装依赖后,使用下面的代码连接到集群并列出某个数据库的集合:

const { MongoClient } = require('mongodb');

const uri = "mongodb+srv://demo:password@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority";
const client = new MongoClient(uri);

async function run() {
  try {
    await client.connect();
    console.log("已连接到 MongoDB Atlas");
    const db = client.db("sample_mflix");
    const collections = await db.listCollections().toArray();
    console.log(collections);
  } finally {
    await client.close();
  }
}

run().catch(console.dir);

如果偏好命令行,也可以安装 mongosh 后执行下面的命令。进入交互式 Shell 后运行 db.runCommand({ ping: 1 }),返回 ok: 1 表示连接和认证都通过。

mongosh "mongodb+srv://demo:password@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority"

免费集群在长时间没有请求后可能进入休眠状态,第一次连接需要几秒到十几秒唤醒,这是共享实例的正常行为。如果连接被拒绝,不要急着改代码,先检查用户名、密码、白名单和网络出口。

四、免费集群限制与常见问题处理

连接报 Authentication failed 时,先确认数据库用户是否创建在正确的项目下,用户名是否大小写完全一致。数据库用户的认证库默认是 admin,连接串中不需要特意指定 authSource,通常也没有问题。真正容易被忽略的是密码中的特殊字符没有做 URL 编码,导致驱动读取到错误的密码片段。

如果提示无法到达主机或连接超时,九成原因是当前出口 IP 不在白名单里。可以打开 what is my ip 类型的网页查询当前公网 IP,再回到 Network Access 添加。公司和学校网络往往存在代理,需要把代理服务器的出口地址也添加进去,或者使用手机热点测试是否恢复正常。白名单修改后不是立即全局生效,稍等片刻再试通常能解决。

M0 免费集群虽然具备副本集形式,但存储空间只有 512MB,CPU 和内存也是共享的,不适合保存重要生产数据,也不支持所有企业级监控和备份能力。对于持续运行的业务,建议升级到 M2 或 M10;对于学习、临时测试和小型原型,M0 足够稳定。日常可以使用 MongoDB Compass 粘贴连接串进行图形化管理,建集合、查文档和调试索引都比命令行直观。

MongoDB Atlas免费集群数据库配置修改时间:2026-09-23 08:04:14

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/0923/60822.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。