【发布时间】:2025-12-25 18:20:08
【问题描述】:
试图复兴一个旧的 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脚本总是给出这个:
Traceback(最近一次调用最后一次):文件“pymm_run.py”,第 467 行,在 args.func(args) 文件“pymm_run.py”,第 186 行,在 bootstrap_restore db = get_db() 文件“/Users/myuser/matchminer-api/matchminer/database.py”,第 50 行,在 获取数据库 连接[MONGO_DBNAME].add_user(MONGO_USERNAME, MONGO_PASSWORD) 文件 “/Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/database.py”, 第 966 行,在 add_user (not uinfo["users"]), name, password, read_only, **kwargs) File "/Users/myuser/miniconda3/envs/matchminer/lib/python2.7/site-packages/pymongo/database.py", 第 892 行,在 _create_or_update_user read_preference=ReadPreference.PRIMARY, **opts) 文件 "/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 中 味精,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', {})]) 在命名空间上 matchminer.$cmd 失败:使用 SCRAM-SHA-256 需要未消化 密码
为什么会发生这种情况,有什么补救措施? 谢谢
【问题讨论】:
标签: python mongodb python-2.7 passwords pymongo