title: pymongo auth failed in python script
body: <p>I have installed mongodb and enabled auth. and its working find. I can connect it from remote notebook using robomongo application:</p>
  
  <pre><code>Host: SERVER_IP
  PORT: 27017
  DATEBASE: prod-db
  USERNAME: user_name
  PASS: user_password
  Auth Mechanism: MONGODB-CR
  </code></pre>
  
  <p>and We can connect from server shell locally using:</p>
  
  <pre><code>$ mongo prod-db -u user_name -p user_password
  </code></pre>
  
  <p>Everything works fine, but when we try it using pymongo api. authentications failed. below is the python code:</p>
  
  <pre><code>from pymongo import MongoClient
  
  client = MongoClient()
  client.prod_db.authenticate('user_name', 'user_password', mechanism='MONGODB-CR')
  db = client.prod_db
  result = db.users.find()
  
  for document in result:
      print(document)
  </code></pre>
  
  <p>Tools used:</p>
  
  <pre><code>python 2.7
  pymongo versiob 3.3.1
  MongoDB shell version: 2.6.10
  $ mongod --version
  db version v2.6.10
  2016-10-31T16:34:59.868+0000 git version: nogitversion
  2016-10-31T16:34:59.868+0000 OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
  </code></pre>
  
  <p>Error trace:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "/usr/local/lib/python2.7/dist-packages/pymongo/database.py", line 1018, in authenticate
      connect=True)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 444, in _cache_credentials
      sock_info.authenticate(credentials)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/pool.py", line 343, in authenticate
      auth.authenticate(credentials, self)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/auth.py", line 464, in authenticate
      auth_func(credentials, sock_info)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/auth.py", line 439, in _authenticate_mongo_cr
      sock_info.command(source, query)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/pool.py", line 239, in command
      read_concern)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/network.py", line 102, in command
      helpers._check_command_response(response_doc, None, allowable_errors)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 205, in _check_command_response
      raise OperationFailure(msg % errmsg, code, response)
  </code></pre>
  
  <p><strong>Solution:</strong>
  problem was with database name, following code works fine:</p>
  
  <pre><code>from pymongo import MongoClient
  
  client = MongoClient('mongodb://user_name:user_password@localhost:27017/prod-db')
  db = client['prod-db']
  
  result = db.users.find()
  for document in result:
      print document
  </code></pre>