python2.7 + pymongo:错误:使用 SCRAM-SHA-256 需要未消化的密码



试图恢复旧的python应用程序。 收到此错误:

使用 SCRAM-SHA-256 需要未消化的密码

Mac OSX 10.13.6 conda 环境,所有软件包都为用户本地安装。 python2.7(无法升级) 皮蒙戈 2.9.1

其他安装pip2.7 install -r requirements的东西:

Flask==0.10.1
Flask-Cors==2.1.2
Flask-PyMongo==0.3.1

在蒙戈中,我创建了一个管理员用户: db.createUser({user:"admin", pwd:"abc123",roles:[{role:"userAdminAnyDatabase",db:"admin"}], passwordDigestor:"server" })我可以db.getUsers()看到它。也尝试了mechanisms : [“SCRAM-SHA-256”]mechanisms : [“SCRAM-SHA-1”]和他们两个。运行我的 python 脚本总是给出这个:

回溯(最近一次调用):文件 "pymm_run.py",第 467 行,在 args.func(args) 文件 "pymm_run.py", 第 186 行, bootstrap_restore db = get_db() 文件 "/Users/myuser/matchminer-api/matchminer/database.py",第 50 行,在 get_db 连接[MONGO_DBNAME].add_user(MONGO_USERNAME、MONGO_PASSWORD) 文件 "/Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/database.py", 966路,add_user (不是 uinfo["users"]), name, password, read_only, **kwargs) 文件 "/Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/database.py", 892路,_create_or_update_user read_preference=ReadPreference.PRIMARY, **opts) File "/Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/database.py", 第 535 行,在命令中 codec_options, **kwargs)[0] 文件 "/Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/database.py", 440路,_command msg, allowable_errors) 文件 "/Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/helpers.py", 213路,_check_command_response raise OperationFailure(msg % errmsg, code, response) pymongo.errors.OperationFailure: command SON([('createUser', 'user'), ('pwd', u'fa26a506aa0f786a447bbd6d1caaa8b5'), ('digestPassword', False), ('roles', ['dbOwner']), ('writeConcern', {})]) on namespace matchminer.$cmd 失败:使用 SCRAM-SHA-256 需要未消化 密码

为什么会发生这种情况,补救措施是什么? 谢谢

检查你的pymongo版本。如 ansible 模块页面中所述:

需要远程主机上的 pymongo Python 包,版本 2.4.2+。这可以使用 pip 或操作系统包管理器进行安装。@see http://api.mongodb.org/python/current/installation.html

我只是运行 pip -U 安装 pymongo

最新更新