You need to enable JavaScript to run this app. 如何在Delphi中通过FireDAC连接MongoDB Atlas数据库
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi中通过FireDAC连接MongoDB Atlas数据库

Delphi Seattle 搭配 FireDAC 连接 MongoDB Atlas 解决方案

核心原因说明

mongodb+srv 是MongoDB 3.6版本推出的简化连接协议,会自动通过DNS SRV记录拉取集群节点、复制集、SSL配置等参数,但Delphi Seattle自带的FireDAC MongoDB驱动不支持该协议解析,所以直接提取+srv后缀的域名填写会解析失败。


操作步骤

1. 获取Atlas集群原始节点参数

登录MongoDB Atlas后台,进入集群连接页,选择「Connect with MongoDB Shell」,再选择3.4及更早版本的Shell选项,即可获取非SRV格式的配置信息,包括:

  • 多节点域名+端口列表(格式类似xxx-00.mongodb.net:27017,xxx-01.mongodb.net:27017,xxx-02.mongodb.net:27017)
  • 复制集名称(格式类似atlas-xxxxxx-shard-0)

2. 提前替换依赖库

Delphi Seattle自带的MongoDB驱动依赖的mongoc.dll、bson.dll版本过低,不兼容Atlas的安全规则,需要替换为1.9.x~1.15.x区间版本的dll,放在程序运行根目录即可。

3. FireDAC连接参数配置

打开TFDConnection组件的参数编辑器,驱动选择Mongo,按以下规则填写参数:

  • Server:填写刚才获取的所有节点域名+端口,用逗号分隔
  • Database:填写目标业务数据库名称
  • User_Name:填写Atlas平台创建的数据库用户名(注意不是Atlas登录账号)
  • Password:填写对应数据库用户的密码
  • 进入高级参数页,新增以下配置:
    • ReplicaSet:填写获取到的复制集名称
    • AuthSource:填admin(Atlas默认认证库为admin)
    • SSL:填yes(Atlas强制要求SSL连接)
    • AuthMechanism:填SCRAM-SHA-1,显式指定认证机制兼容老版本驱动

代码配置示例(可选)

如果需要通过代码动态配置连接,参考以下代码:

var
  FDConn: TFDConnection;
begin
  FDConn := TFDConnection.Create(nil);
  try
    FDConn.DriverName := 'Mongo';
    FDConn.Params.Add('Server=xxx-00.mongodb.net:27017,xxx-01.mongodb.net:27017,xxx-02.mongodb.net:27017');
    FDConn.Params.Add('Database=你的业务数据库名');
    FDConn.Params.Add('User_Name=Atlas数据库用户名');
    FDConn.Params.Add('Password=对应用户密码');
    FDConn.Params.Add('ReplicaSet=atlas-xxxxxx-shard-0');
    FDConn.Params.Add('AuthSource=admin');
    FDConn.Params.Add('SSL=yes');
    FDConn.Params.Add('AuthMechanism=SCRAM-SHA-1');
    FDConn.Connected := True;
    // 连接成功后执行业务逻辑
  finally
    FDConn.Free;
  end;
end;

连接失败排查

  • 检查Atlas集群的IP白名单是否已经添加当前客户端的公网IP,可临时开启允许所有IP访问验证
  • 确认数据库用户名密码正确,不要误用Atlas平台的登录账号密码
  • 检查mongoc.dll、bson.dll版本是否在兼容区间内,不要使用过新或过老的版本

内容的提问来源于stack exchange,提问作者Bruno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 13:21:03