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

时间:2019-02-14 11:45:26

标签: python mongodb python-2.7 passwords pymongo

尝试恢复旧的python应用程序。 Python脚本正在尝试连接到mongo。收到此错误:

  

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

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

pip2.7 install -r requirements一起安装的其他内容:

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

在Mongo中,我创建了一个管理员用户: 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)bootstrap_restore中的文件“ pymm_run.py”,第186行       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”,   add_user中的第966行       (不是uinfo [“ users”]),名称,密码,只读,** kwargs)文件“ /Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/database.py”,   _create_or_update_user中的第892行       read_preference = ReadPreference.PRIMARY,**选择)文件“ /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”,   _command中的第440行       msg,allowable_errors)文件“ /Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/helpers.py”,   第213行,在_check_command_response中       引发OperationFailure(msg%errmsg,代码,响应)pymongo.errors.OperationFailure:命令SON([(''createUser','user'),   ('pwd',u'fa26a506aa0f786a447bbd6d1caaa8b5'),('digestPassword',   False),(名称空间上的('roles',['dbOwner']),('writeConcern',{})])   matchminer。$ cmd失败:使用SCRAM-SHA-256要求未消化   密码

为什么会这样,有什么补救措施? 谢谢

1 个答案:

答案 0 :(得分:0)

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

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

我只是运行pip -U install pymongo