You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 2.7连接MongoDB Atlas认证失败问题求助

解决Python 2.7连接MongoDB Atlas认证失败的问题

我来帮你排查这个认证失败的问题——首先得明确,Python 2.7已经停止维护多年,MongoDB Atlas对旧版本的Python和pymongo库支持有限,这是你遇到问题的核心原因之一。下面是一步步的解决办法:

1. 锁定兼容的pymongo版本

Python 2.7只能使用pymongo 3.x系列版本(4.x及以上完全放弃了对Python2的支持),你需要先安装适配的稳定版本:

pip install pymongo==3.12.3

这是pymongo支持Python2.7的最后一个官方维护版本。

2. 调整连接字符串与认证配置

旧版本pymongo对Atlas默认的SCRAM-SHA-256认证机制支持不佳,同时需要明确指定认证源。修改你的MongoClient初始化代码:

import certifi
import ssl
from pymongo import MongoClient

# 替换<USER>和<PASSWORD>为你的Atlas账户真实信息
client = MongoClient(
    "mongodb+srv://<USER>:<PASSWORD>@sensor-cluster-jhiup.mongodb.net/test",
    ssl_cert_reqs=ssl.CERT_REQUIRED,
    ssl_ca_certs=certifi.where(),
    authSource="admin",  # 指定认证源为admin数据库
    authMechanism="SCRAM-SHA-1"  # 使用旧版本pymongo支持的认证机制
)

print(client)
db = client.test
items = db.items
# 执行插入操作并打印结果
result = items.insert_one({"item": "canvas"})
print(f"插入成功,文档ID: {result.inserted_id}")

3. 确保certifi版本兼容

Python2.7对应的certifi库也需要使用最后支持它的版本,避免SSL证书验证失败:

pip install certifi==2020.12.5

额外重要提醒

Python 2.7在2020年就已经停止了所有安全更新和维护,不仅MongoDB Atlas会逐步减少对它的支持,你的代码也会面临潜在的安全风险。如果条件允许,强烈建议你升级到Python3.8及以上版本,配合最新的pymongo库,能彻底避免这类兼容性问题,也能获得更好的性能和安全保障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:32:45