2016-01-04 12 views
7

Sto cercando di connettersi a un database MongoLab ma continuo a ricevere il seguente errore sulla connessione:Auth non riuscita, codice 18 per la connessione al database di MongoLab

{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 } 

Il codice che sto utilizzando per la connessione è:

var mongoose = require("mongoose"); 

mongoose.connect("mongodb://username:[email protected]:61474/apitest"); 

mongoose.connection.on('error', function (err) { 
    console.log(err); 
}); 

Quando mi collego utilizzando la shell, non ho alcun problema. Che cosa sto facendo di sbagliato?

+1

È possibile verificare se per caso si utilizza il nome utente e la password mongolab.com, anziché il nome utente e la password del database? – Idos

+1

Inoltre, stai forse usando una vecchia versione di shell per connetterti alla versione più recente di mongodb? – Idos

risposta

8

Ho riscontrato problemi simili durante il collegamento del mongo db utilizzando mangusta. Dopo aver esplorato un po 'ho scoperto che mongoLab utilizza l'autenticazione SCRAM-SHA-1. Fare riferimento alla domanda qui sotto ho cercato di aggiornare il mio mangusta a V4.1.11, e quindi funziona per me

Authentication in mongoose using SCRAM-SHA-1

+0

aggiornamento versione mangusta mi ha aiutato ... grazie :) fare riferimento a questo https://github.com/mongolab/hello-mongoose/commit/d873461a5cae8c914b4385f6259b2d7a83e164e3 – rtvalluri

1

ha avuto questo errore io stesso, scopre ho fatto due cose in modo non corretto (grazie Idos):

  1. Utilizzato il nome utente mongolab.com anziché quello del database.
  2. Tentativo di connessione a un database mongo 3.4 utilizzando una shell 2.6 fornita tramite i repository di Ubuntu. mongo --version da verificare.

Seguire le istruzioni da this MongoDB page per aggiungere le proprie chiavi e repository alle origini APT per aggiornare e mantenere aggiornata l'installazione di MongoDB in futuro.

Problemi correlati