Python Pymongo Error

Pymongo cannot log in to MongoDB. I typed the correct password for the 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

Here is pymongo

import pymongo

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

Does pymongo use md5 on a password? it looks like there are several different passwords in the mongodb data.

here is the data mordodb admin system.users

{"user": "root", msgstr "" roles ": [" UserAdminAnyDatabase "]}

You see what is wrong?

+4
source share
3 answers

I tried to connect a table called api.

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

There was no admin account in the api table. I put in the system.admin table. So, I created a new admin account in the api table and it worked.

0

pymongo

pip install --upgrade pymongo
+11

It looks like you need to cut out the certificate from the Bluemix MongoDB credentials, save it in a file (for example, certificate.pem) and reference it like this:

client = pymongo.MongoClient(uri_string, ssl_ca_certs='c:\data\certificate.pem')

0
source

Source: https://habr.com/ru/post/1540734/


All Articles