2016-01-04 9 views
7

Próbuję połączyć się z bazą danych MongoLab ale wciąż otrzymuję następujący błąd przy połączeniu:Auth nie powiodła się, kod 18 podczas łączenia się z bazą danych MongoLab

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

Kod używam do łączenia się:

var mongoose = require("mongoose"); 

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

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

Po podłączeniu za pomocą powłoki, nie mam żadnych problemów. Co ja robię źle?

+1

Czy możesz sprawdzić, czy przez przypadek używasz nazwy użytkownika i hasła mongolab.com zamiast nazwy użytkownika i hasła do bazy danych? – Idos

+1

Czy używasz starej wersji powłoki, aby połączyć się z nowszą wersją Mongodb? – Idos

Odpowiedz

8

Napotkałem podobny problem podczas podłączania mongo db przy użyciu mangusty. Po krótkim czasie odkryłem, że mongoLab używa uwierzytelniania SCRAM-SHA-1. Patrz pytanie poniżej Próbowałem zaktualizować mongoose do V4.1.11, a to działa na mnie

Authentication in mongoose using SCRAM-SHA-1

+0

uaktualnienie wersji mongoose pomógł mi..dzięki :) odnoszą się to https://github.com/mongolab/hello-mongoose/commit/d873461a5cae8c914b4385f6259b2d7a83e164e3 – rtvalluri

1

Gdyby ten błąd się, okazuje się, zrobiłem dwie rzeczy nieprawidłowo (dzięki Idos):

  1. Używana nazwa użytkownika mongolab.com zamiast bazy danych.
  2. Próbowałem połączyć się z bazą danych mongo 3.4 za pomocą powłoki 2.6 dostarczonej z repozytoriów Ubuntu. mongo --version, aby sprawdzić.

Postępuj zgodnie z instrukcjami od this MongoDB page, aby dodać swoje klucze i repozytoria do źródeł APT, aby uaktualnić i zachować aktualizację instalacji MongoDB w przyszłości.

Powiązane problemy