title: MongoDB Authentication failure from mongo java client
body: <p>I tried to connect to mongo db version 3.2 using mongo java client version 3.2 and getting the following exception, any idea what went wrong here?</p>
  
  <pre><code>com.mongodb.MongoSecurityException: Exception authenticating
  at com.mongodb.connection.NativeAuthenticator.authenticate(NativeAuthenticator.java:48)
  at com.mongodb.connection.InternalStreamConnectionInitializer.authenticateAll(InternalStreamConnectionInitializer.java:99)
  at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:44)
  at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)
  at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:128)
  at java.lang.Thread.run(Thread.java:745)
  Caused by: com.mongodb.MongoCommandException: Command failed with error 18: 'auth failed' on server 10.100.5.41:27017. The full response is { "ok" : 0.0, "errmsg" : "auth failed", "code" : 18 }
  at com.mongodb.connection.CommandHelper.createCommandFailureException(CommandHelper.java:170)
  at com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:123)
  at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32)
  at com.mongodb.connection.NativeAuthenticator.authenticate(NativeAuthenticator.java:46)
  ... 5 more
  </code></pre>
  
  <p>Following is the code I used to connect.</p>
  
  <pre><code>MongoClient mongoClient = null;
  
      try {
          MongoCredential credential = MongoCredential.createMongoCRCredential("admin", "mydatabase", "admin123".toCharArray());
          mongoClient = new MongoClient(new ServerAddress("10.100.5.41", 27017), Arrays.asList(credential));
  
          MongoDatabase database = mongoClient.getDatabase("mydatabase");
          System.out.println(database.getName());
          MongoCollection collection = database.getCollection("user");
  
          MongoCursor cursor = collection.find().iterator();
          while (cursor.hasNext()) {
              System.out.println(cursor.next());
          }
  
      } catch (Exception e) {
          e.printStackTrace();
      }
  </code></pre>