Python Pymongo身份验证失败 [英] Python Pymongo auth failed

查看:332
本文介绍了Python Pymongo身份验证失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Pymongo继续无法登录MongoDB.我输入了"root"帐户的正确密码.

Pymongo keep failing to login MongoDB. I typed right password for "root" account.

Traceback (most recent call last):
  File "index.py", line 3, in <module>
    from apis import app
  File "/home/app/apis/__init__.py", line 16, in <module>
    import apis.call
  File "/home/app/apis/call.py", line 12, in <module>
    import auth
  File "/home/app/apis/auth.py", line 18, in <module>
    connection.api.authenticate(database.ADMIN_ID,database.ADMIN_PASSWD)
  File "/usr/lib64/python2.6/site-packages/pymongo/database.py", line 875, in authenticate
    self.connection._cache_credentials(self.name, credentials)
  File "/usr/lib64/python2.6/site-packages/pymongo/mongo_client.py", line 456, in _cache_credentials
    auth.authenticate(credentials, sock_info, self.__simple_command)
  File "/usr/lib64/python2.6/site-packages/pymongo/auth.py", line 243, in authenticate
    auth_func(credentials[1:], sock_info, cmd_func)
  File "/usr/lib64/python2.6/site-packages/pymongo/auth.py", line 222, in _authenticate_mongo_cr
    cmd_func(sock_info, source, query)
  File "/usr/lib64/python2.6/site-packages/pymongo/mongo_client.py", line 687, in __simple_command
    helpers._check_command_response(response, None, msg)
  File "/usr/lib64/python2.6/site-packages/pymongo/helpers.py", line 178, in _check_command_response
    raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: command SON([('authenticate', 1), ('user', u'root'), ('nonce', u'9e44852e6597a1de'), ('key', u'f132369d21874c9858409e235abff25f')]) failed: auth failed

这是pymongo

import pymongo

connection = pymongo.MongoClient("127.0.0.1")
connection.api.authenticate("root","1234")
db = connection.api

pymongo是否在密码上使用md5?看来mongodb数据中有一些不同的密码.

does pymongo use md5 on password? it looks like there is some different password in mongodb data.

这是mongodb admin system.users数据

here is mongodb admin system.users data

{ "user":"root", "pwd":"cde0d84e6749c235a3b4e36d945eb6fe", 角色":[ "userAdminAnyDatabase" ] }

{ "user": "root", "pwd": "cde0d84e6749c235a3b4e36d945eb6fe", "roles": [ "userAdminAnyDatabase" ] }

您看到什么地方了吗?

推荐答案

我试图连接名为api的表.

I tried to connect table called api.

connection.api.authenticate("root","1234")

api表中没有管理员帐户.我确实放入了system.admin表.因此,我在api表中创建了一个新的管理员帐户,它可以正常工作.

There wasn't admin account in api table. I did put in system.admin table. So, I created a new admin account in api table and it worked.

这篇关于Python Pymongo身份验证失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆