分析:mongo账号及密码正确,不指定的集合可以连接
解决方案:
指定集合必须使用authSource=admin&retryWrites=true&w=majority 来指定认证
如果用户是在管理数据库中创建的,但您希望使用URI连接到其他数据库,则需要在URI中指定authSource,以便找到正确的用户帐户
格式:mongo://adminName:adminPassword@localhost:27017/otherdb?authSource=admin&retryWrites=true&w=majority"
db_uri = "mongodb://" + usr + ":" + pwd + "@" + \
url + "/test_db?authSource=admin&retryWrites=true&w=majority"
参考:
https://stackoverflow.com/questions/72048051/pymongo-auth-failure-ok-0-0-errmsg-authentication-failed-code-18
https://www.5axxw.com/questions/content/khqgbe