尝试恢复旧的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要求未消化 密码
为什么会这样,有什么补救措施? 谢谢
答案 0 :(得分:0)
检查您的pymongo版本。如ansible模块页面中所述:
需要远程主机2.4.2+版上的pymongo Python软件包。可以使用pip或OS软件包管理器进行安装。 @see http://api.mongodb.org/python/current/installation.html
我只是运行pip -U install pymongo