首页/新闻资讯/正文详情

在 Elestio 上部署托管 FerretDB:五分钟搭建生产可用的 MongoDB 替代方案

发布时间:2026/9/24 14:14:50 来源:云帆数科 栏目:资讯中心
在 Elestio 上部署托管 FerretDB:五分钟搭建生产可用的 MongoDB 替代方案
后端数据库文档数据库【免费下载链接】FerretDBA truly Open Source MongoDB alternative项目地址https://gitcode.com/gh_mirrors/fe/FerretDB点击查看免费下载FerretDB 是一款开源、以 PostgreSQLDocumentDB 扩展为后端的 MongoDB 替代品。本指南基于官方部署文档讲解如何在 Elestio 这一 DevOps 平台上以托管方式在任何云环境或本地机房中快速创建生产级 FerretDB 实例并通过mongosh连接执行 CRUD 操作。读完本文你将掌握从服务开通、云厂商选择、凭据获取到数据读写验证的完整实战流程同时理解其认证机制在源码层面的实现原理。FerretDB 与 Elestio 是什么FerretDB 是一个开源 MongoDB 替代品。按照仓库 README.md 的定义它是一个代理proxy将 MongoDB 5.0 的 wire protocol 查询转换为 SQL并以带 DocumentDB 扩展的 PostgreSQL 作为数据库引擎。对大多数只需要易用开源文档数据库的团队来说FerretDB 可以作为一个 drop-in 替代方案使用。Elestio 是一个 DevOps 平台负责帮你配置、运行、监控、备份、维护和加固开源软件实例。在 Elestio 上部署 FerretDB意味着你不需要自己搭建服务器、维护数据库进程和操心运维琐事就可以在任何云厂商AWS、DigitalOcean、Hetzner 等或本地on-premise环境获得一个托管实例整个开通流程通常不超过 5 分钟。仓库的 README.md 在 Managed FerretDB at cloud providers 一节中也将 Elestio 列为 FerretDB 官方认可的托管服务商之一。前提条件在开始之前你需要准备两样东西一个Elestio 账户用于创建和管理 FerretDB 服务mongoshMongoDB Shell用于连接数据库并执行操作。mongosh是一个独立的命令行客户端如果你的机器上尚未安装可以按 MongoDB 官方渠道安装也可以使用仓库快速上手方案中提供的 Docker 容器内置 Shell参见 README.md 的 Quickstart 部分。如何部署 FerretDB第一步选择 FerretDB 服务登录 Elestio 后从 Elestio 的服务仪表盘services dashboard中选中FerretDB服务进入创建流程。第二步选择云服务商接下来为你的项目选择一个云服务商。Elestio 提供了多种选项包括DigitalOceanHetznerAmazonAWSLinodeVultrScalewayBYOSBring Your Own Server自带服务器以本例来说我们在 DigitalOcean 上创建 FerretDB 实例。除了云服务商你还可以在此页设置Service Cloud Region服务云区域和Service Plan服务套餐按你的业务规模和地域需求选择合适的资源配置。第三步选择支持级别与高级配置在下一个页面选择你需要的技术支持级别例如远程备份保留时长remote backup retention服务快照service snapshots响应时间response timeSLA服务等级协议优先排队priority queuing等。确认配置后点击创建服务。实例和相关资源的开通provisioning可能需要几分钟时间之后你的 FerretDB 托管实例就绪了。第四步使用mongosh连接 FerretDB连接数据库需要实例的连接字符串connection string。在 Elestio 的服务仪表盘上选择Display DB Credentials显示数据库凭据即可获取。得到凭据后用mongosh按如下格式连接实例mongosh mongodb://username:passwordhost-address/ferretdb?authMechanismPLAIN替换其中的username、password、host-address为你的实际凭据与实例地址即可。连接成功后你就进入了 FerretDB 的交互式 Shell。连接字符串与认证机制的原理上面连接字符串中的?authMechanismPLAIN指定了认证机制。这里有必要结合 FerretDB 的源码说明其背后原理避免误解FerretDB不自己存储用户名和密码而是完全依赖 PostgreSQL 的认证体系所有用户凭据由 PostgreSQL 管理和校验。官方文档 website/docs/security/authentication.md 明确说明了这一设计客户端把凭据交给 FerretDBFerretDB 转发给 PostgreSQL由 PostgreSQL 校验后把结果回传。在客户端侧FerretDB 目前只支持SCRAM-SHA-256认证机制。这一点在源码中有直接证据saslStart命令的实现 internal/handler/msg_saslstart.go 中如果收到的mechanism不是SCRAM-SHA-256会直接返回MechanismUnavailable错误同时hello命令的响应中saslSupportedMechs也仅声明SCRAM-SHA-256见 internal/handler/msg_hello.go。示例中的PLAIN是连接层使用的机制标记实际落地认证时由 PostgreSQL 侧的用户凭据完成校验。认证默认是开启的对应启动参数--auth默认true关闭认证则可通过FERRETDB_AUTHfalse或--no-auth实现但官方不推荐在生产环境关闭参见 cmd/ferretdb/main.go 与认证文档。托管实例的用户凭据由 Elestio 在开通时为你创建好因此直接使用 Display DB Credentials 提供的连接串即可无需手动建用户。在实例上执行基本 CRUD 操作连接成功后即可向 FerretDB 实例写入和读取数据。下面按增、查、改、删四个步骤演示所有命令都在mongosh中执行。插入Insert向record集合插入一条文档db.record.insertOne({ username: JD, content: Enjoying the beautiful weather today! #sunnyday, likes: 120, timestamp: new Date() })insertOne在 FerretDB 中对应insert命令其命令注册与实现位于 internal/handler/commands.go 与 internal/handler/msg_insert.go。查询Read插入后执行db.record.find()查看文档response [ { _id: ObjectId(66d6a9346e70f5ffc91022c0), username: JD, content: Enjoying the beautiful weather today! #sunnyday, likes: 120, timestamp: ISODate(2024-09-03T06:14:12.634Z) } ]可以看到 FerretDB 返回了 MongoDB 风格的文档结构自动生成的_idObjectId 类型、原始字段以及ISODate格式的时间戳。find对应的命令实现可参考 internal/handler/msg_find.go。更新Update把 JD 这条帖子的likes更新为 150db.record.updateOne({ username: JD }, { $set: { likes: 150 } })输出response { acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 }matchedCount: 1表示匹配到 1 条文档modifiedCount: 1表示实际修改了 1 条。更新命令由 internal/handler/msg_update.go 实现。你也可以再次执行db.record.find()确认数据已更新。删除Delete最后从集合中删除这条文档db.record.deleteOne({ username: JD })删除操作的命令实现位于 internal/handler/msg_delete.go。至此你已经完成了一次完整的增删改查闭环验证证明托管实例可以正常读写数据。生产环境使用要点虽然 Elestio 已经替你处理了大部分运维工作但有几点仍值得在生产中留意认证与用户管理托管实例的凭据由平台分配。如果你需要自己管理用户FerretDB 支持通过createUser命令创建 PostgreSQL 用户见 internal/handler/msg_createuser.go未指定角色时会默认添加clusterAdmin与readWriteAnyDatabase角色。也可以直接在 PostgreSQL 中使用CREATE USER创建。后端存储FerretDB 的数据实际存放在 PostgreSQL 中Elestio 的备份、快照等能力本质上是在保护 PostgreSQL 数据选择支持级别时建议按数据重要程度配置合适的备份保留策略。端口与连接安全默认 MongoDB 协议监听 27017 端口可参考 README.md 的 Quickstart 示例生产环境建议通过 Elestio 的网络配置限制来源 IP并妥善保管数据库凭据。结论通过 Elestio你可以在任意云环境或本地机房中在几分钟内获得一个生产可用的托管 FerretDB 实例不必再操心 DevOps 和基础设施问题。整个过程从选择服务、选云厂商、配置支持级别到用mongosh连接并完成 CRUD 验证链路清晰、上手门槛低。而且 FerretDB 本身是开源软件不存在厂商锁定no vendor lock-in问题未来随时可以把数据迁移到任何其他云环境。如果你希望深入了解 FerretDB 本身的能力边界、支持的命令清单与兼容性差异可以继续阅读仓库中的 website/docs 文档目录以及源码中 internal/handler/commands.go 内完整注册的命令列表。赞分享后端数据库文档数据库【免费下载链接】FerretDBA truly Open Source MongoDB alternative项目地址https://gitcode.com/gh_mirrors/fe/FerretDB点击查看免费下载相关推荐在 Kubernetes 上部署 FerretDB以 DocumentDB 为后端的高可用 MongoDB 替代方案在 Kubernetes 上部署 FerretDB以 DocumentDB 为后端的高可用 MongoDB 替代方案 本篇指南以 FerretDB v2.7后端数据库文档数据库5分钟上手FerretDB开源MongoDB替代方案的极速部署指南5分钟上手FerretDB开源MongoDB替代方案的极速部署指南 你还在为MongoDB的SSPL许可证烦恼吗还在寻找轻量级、易部署的开源文档数据库本文后端数据库文档数据库在 Kubernetes 上使用 CyberTec Postgres Operator 部署 FerretDB开源 MongoDB 替代方案的完整实操指南在 Kubernetes 上使用 CyberTec Postgres Operator 部署 FerretDB开源 MongoDB 替代方案的完整实操指南 本后端数据库文档数据库上一篇基于BookCorpus与Wikipedia的预训练hf_mirrors/JiangSuAscend/albert-base-v2数据处理全流程下一篇Bit v1.6.145 发布解读bit lane eject 新命令、Lane 作用域校验与多项稳定性修复创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Quartus Prime 18.1与ModelSim联合仿真全攻略:安装、授权到波形调试
Quartus Prime 18.1与ModelSim联合仿真全攻略:安装、授权到波形调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:14:37

Redis 未授权访问漏洞详解|漏洞复现 + 提权攻击 + 应急响应 + 全套安全加固
Redis 未授权访问漏洞详解|漏洞复现 + 提权攻击 + 应急响应 + 全套安全加固

前言 Redis 是目前互联网使用最广泛的高性能内存数据库,常用于缓存、会话存储、热点数据存储。但绝大多数企业、运维人员因为默认配置不当,导致 Redis 暴露公网、无密码认证,产生高危 未授权访问漏洞。 攻击者可无需任何账号密码&#xff0… · 2026/9/24 14:14:37

别再手动拼Excel发票了:用Invoify在线发票生成器3分钟出PDF
别再手动拼Excel发票了:用Invoify在线发票生成器3分钟出PDF

别再手动拼Excel发票了:用Invoify在线发票生成器3分钟出PDF 【免费下载链接】invoify An invoice generator app built using Next.js, Typescript, and Shadcn 项目地址: https://gitcode.com/GitHub_Trending/in/invoify 月底要开票的时候,你是… · 2026/9/24 14:14:31

陶晶驰T0/T5/X3串口屏选型避坑指南:从UART协议到触控驱动的硬核解析
陶晶驰T0/T5/X3串口屏选型避坑指南:从UART协议到触控驱动的硬核解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:45:49

gsd-core 配置加载性能优化:loadConfig 中 detectSubRepos 目录扫描的 per-call memoization 治理(PR 315)
gsd-core 配置加载性能优化:loadConfig 中 detectSubRepos 目录扫描的 per-call memoization 治理(PR 315)

【免费下载链接】gsd-core Git. Ship. Done - Core 项目地址: https://gitcode.com/gh_mirrors/ge/gsd-core 点击查看 免费下载 导读 在 gsd-core(Git. Ship. Done — Core)中,loadConfig 是项目配置加载的核心入口,… · 2026/9/24 14:45:49

STAR-RIS辅助MISO安全通信:MATLAB实现RSMA安全速率优化
STAR-RIS辅助MISO安全通信:MATLAB实现RSMA安全速率优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:45:42

Easy-Vibe 附录:Docker 容器化实战指南——从镜像分层原理到多阶段构建部署
Easy-Vibe 附录:Docker 容器化实战指南——从镜像分层原理到多阶段构建部署

Easy-Vibe 附录:Docker 容器化实战指南——从镜像分层原理到多阶段构建部署 【免费下载链接】easy-vibe 从 0 到 1 学会 vibe coding,项目制学习 项目地址: https://gitcode.com/datawhalechina/easy-vibe 容器化是"在我机器上能跑"这一… · 2026/9/24 14:45:36

手把手教你用 tchMaterial-parser 批量下载智慧教育平台电子课本 PDF
手把手教你用 tchMaterial-parser 批量下载智慧教育平台电子课本 PDF

手把手教你用 tchMaterial-parser 批量下载智慧教育平台电子课本 PDF 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地… · 2026/9/24 14:45:36

Presto 0.284 版本解析:优化器增强、噪声聚合函数与连接器新特性全览
Presto 0.284 版本解析:优化器增强、噪声聚合函数与连接器新特性全览

大数据数据库后端 【免费下载链接】presto The official home of the Presto distributed SQL query engine for big data 项目地址: https://gitcode.com/gh_mirrors/pre/presto 点击查看 免费下载 本篇技术指南以 Presto 官方发行说明 release-0.284.rst 为骨架&… · 2026/9/24 14:45:30

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码