当尝试用Python连接到mongodb atlas时,连接超时

unhi4e5o  于 12个月前  发布在  Go
关注(0)|答案(4)|浏览(171)

我试图连接到我的mongodb atlas集群,但我总是在尝试对我的数据库做些什么时超时。
我使用的数据库是在mongoshell中创建的,我在mongodbcompass中检查了它们的存在

ERROR

pymongo.errors.ServerSelectionTimeoutError: projekt-shard-00-01-rk7ft.mongodb.net:27017: timed out,projekt-shard-00-00-rk7ft.mongodb.net:27017: timed out,projekt-shard-00-02-rk7ft.mongodb.net:27017: timed out

字符串

代码

client = MongoClient("""mongodb://user:[email protected]:27017,projekt-shard-00-01-rk7ft.mongodb.net:27017,projekt-shard-00-02-rk7ft.mongodb.net:27017/projekt?ssl=true&replicaSet=projekt-shard-0&authSource=admin""")

    client.projekt.category.insert_one({type : "pants"}).inserted_id

qyuhtwio

qyuhtwio1#

所以问题是你的IP地址,
1.转到MongoDB Atlas中的网络访问面板
1.在IP访问列表部分,您将找到您的所有IP地址
1.点击编辑选项卡为当前的IP地址您正在使用
1.将设置更改为允许从任何地方访问
就这样,会成功的!

nnt7mjpx

nnt7mjpx2#

我有这个问题几个小时.这是奇怪的,它似乎是一个连接问题,但它没有抛出一个坏的auth或任何东西,只是这个超时.客户端对象似乎实际上是创建(我可以打印其属性).我一直在玩,这不知何故工作:

  • 在MongoDB GUI中,导航到数据库访问
  • 添加一个测试用户,该用户对所有内容具有与安装时创建的初始用户相同的读/写权限
  • 将Python中的连接字符串更改为新用户的用户名+密码
  • 运行代码

对我来说,它终于连接并成功插入。在此之后,原始用户的连接字符串现在工作,所以我删除了测试用户。
我无法确定此问题的根本原因,但似乎数据库用户表只需要对其执行某种操作来刷新并开始接受用户连接。

eyh26e7m

eyh26e7m3#

任何人都在寻找解决方案,如果你试图从野外访问Atlas示例,请检查“网络访问”选项卡,因为我认为你必须将所有或特定的IP地址列入白名单

s6fujrry

s6fujrry4#

我通过在数据库URI的末尾添加?ssl=true来修复它

相关问题