MongoDB Atlas作为AWS DMS源端点连接失败解决方案咨询
结论
已有大量开发者成功完成MongoDB Atlas到AWS DMS源端点的配置,你遇到的连接失败核心原因是连接串配置格式错误,DMS自动拼接生成了不符合规范的无效连接串。
你当前配置生成的错误连接串存在明显格式问题:
mongodb://mongodb+srv://[theUsername]:[thePassword]@[theServer].mongodb.net:27017/?retryWrites=false
该串嵌套了两层连接协议前缀,本身不符合MongoDB连接语法规范,根本无法正常发起连接。
修复配置步骤
- 服务器名称字段不要填写带协议、账号密码的完整连接串,仅填写Atlas集群的裸主机地址:
[theServer].mongodb.net - 账号密码信息不要拼在服务器名称里,分别填写到DMS端点配置的独立用户名、密码字段,认证源选择
admin(Atlas默认认证数据库) - 端口字段填写
27017即可,DMS默认追加的retryWrites=false参数和Atlas兼容,无冲突无需修改 - 在端点的「额外连接属性」栏补充必填参数:
ssl=true;authSource=admin,MongoDB Atlas强制要求SSL连接,缺失该参数会直接被拒连。如果需要用SRV协议自动发现Atlas集群的所有节点,额外补充srv=true参数即可。
连通性排查清单
完成上述配置后仍连接失败的,按以下顺序排查:
- 网络白名单校验:登录Atlas控制台,在集群的「网络访问」配置里,把DMS复制实例的所有公网出站IP(或VPC对等连接场景下的私有IP段)全部加入访问白名单,未配置白名单是Atlas连接失败的最高频原因
- 安全组校验:确认DMS复制实例绑定的安全组放开了出方向到27017端口的访问规则,子网网络ACL无对应出向流量拦截规则
- 连通性测试:使用和DMS复制实例同VPC、同安全组配置的测试机,执行
telnet [theServer].mongodb.net 27017验证网络连通性,不通先解决网络层问题 - 权限校验:给DMS使用的Atlas数据库账号,全量同步场景需要拥有对应同步库的
read权限;如果开启CDC增量同步,还要额外授予changeStream、clusterMonitor权限 - 版本兼容校验:如果Atlas集群版本为6.0及以上,需将DMS引擎版本升级到3.5.1及以上,低版本DMS引擎不兼容新版MongoDB的SCRAM认证逻辑
- 最终连接串校验:配置完成后点击DMS控制台的「测试连接」按钮,查看生成的最终连接串,不能出现
mongodb://mongodb+srv://这类嵌套协议前缀,正确的连接串需以mongodb://或mongodb+srv://单协议开头,无重复协议字段
内容的提问来源于stack exchange,提问作者Russell Fox
相关产品推荐
相关产品推荐

