2016-03-18 11 views
22

Mam aplikację Parse i próbuję przenieść bazę danych mojej aplikacji do instancji MongoDB na mLab.Podłączanie do bazy danych MongoDB na serwerze mLab nie działa uwierzytelnianie

Mam już widelec serwera Parse skonfigurowany na Heroku i używam dodatku mLab MongoDB Heroku.

Mam bazę danych na mLAB nazywa heroku_1ksph3jj i powinien być w stanie połączyć się z nim za pomocą następującego wzoru:

mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj

Jednak każda powraca próba:

Server returned error on SASL authentication step: Authentication failed.

Nie jestem pewien, co zastąpić <dbuser> i <dbpassword> za pomocą. Mam użytkownika bazy danych o tej samej nazwie co moja baza danych: heroku_1ksph3jjz, więc użyłem tego. I użyłem hasła dla tego użytkownika zamiast <dbpassword>. Czy powinienem tu użyć czegoś innego?

Odpowiedz

39

można uzyskać dbuser i dbpass z:

heroku config | grep MONGODB_URI

chwycić dbuser (example_user) i dbpass (example_pass) z odpowiedzią:

MONGOLAB_URI: mongodb://example_user:[email protected]:12345/db

+1

Świetnie, dzięki. Jest to lepsze rozwiązanie niż tworzenie nowego użytkownika bazy danych, jeśli zapomnisz hasła. – AdColvin

+0

Na 15.07.2016 jest teraz 'konfiguracja heroku | grep MONGODB_URI' –

2

Wygląda na to, że było to nieprawidłowe hasło, które, jak zakładam, zostało skonfigurowane przez dodatek mLab firmy Heroku. Nie było oczywistego sposobu na zresetowanie tego w interfejsie mLab, więc w końcu utworzyłem innego użytkownika bazy danych (z nową nazwą użytkownika i hasłem) i mogłem się z tym połączyć.

10

Począwszy od marca 2016 , mLab.com obsługuje tylko mongo 3.0+ (jak na rozmowę z obsługą), ze względu na ich nowe, uciążliwe wymagania dotyczące uwierzytelniania.

To nie było na stronie, ale mam nadzieję, że pomoże komuś tutaj!

+0

Ale czy istnieje rozwiązanie? –

+1

Moje rozwiązanie polegało na tym, że dostałem się do jakiegoś fugly dev boxa, które miałem gdzieś indziej, ściągnąłem klienta mongo 3+ (na cento 7 to naprawdę łatwe) i nie sully mój codzienny mac! Nadzieję, że pomaga :) – lol

+0

To zdecydowanie pomogło, obecnie wersja mongo na domyślnych ustawieniach Ubuntu PPA wynosi 2.6, nigdy nie przekażę uwierzytelnienia nawet z poprawnymi danymi uwierzytelniającymi, dziękuję za to! – Miguelgraz

3

tak mi przykro, że może się to wydawać oczywiste, ale, trzeba usunąć to znaki <> do migracji do pracy

W przykładzie będzie wyglądać następująco: MongoDB: // dbuser: [email protected]: 47124/heroku_1ksph3jj

+0

Dzięki, po prostu umieściłem tam, aby pokazać, że użytkownik i hasło były symbolami zastępczymi. Usunąłem je, zanim spróbuję się połączyć. – AdColvin

+1

to jest poprawna odpowiedź. poważnie dziękuję. nie ma pojęcia, dlaczego wszyscy mówią o wersjach. Dziękuję Ci! – Ibdakine

3

Sprawdź swoją wersję klienta mongo. Jeśli jest w starszej wersji głównej (prawdopodobnie 2.x), zaktualizuj ją do 3.x

+0

To to. Dzięki za radę. –

7

Pojawi się komunikat, aby utworzyć użytkownika dla konkretnej bazy danych: Użytkownik bazy danych jest wymagany do połączenia się z tą bazą danych. Aby utworzyć teraz, odwiedź zakładkę „użytkowników” i kliknij przycisk „Dodaj użytkownika bazy danych”

2

Dla przyszłych użytkowników - nie używać znaków specjalnychw hasło .Nawet jeśli zmienić znak specjalny do ascii lub unicode nie będzie działać dla mLab przy użyciu mangusta.

Nie należy również używać poświadczeń mLab, należy używać poświadczeń użytkownika db. Stworzyłem nowego użytkownika.

Np. Dla mnie hasło zawierające @ charakter zastąpiono ASCII wartości % 40 w URI, który pracował przy korzystaniu natywnąMongoDB sterownik. Ale przy użyciu mangusty zawsze otrzymywałem Authentication Failed. Usunąłem znaki specjalne, a db został uwierzytelniony za pomocą mangusty.

+1

Próbowałem również hasła przy użyciu znaku @, a połączenie nie powiodło się. To nadal jest problem! – jessi

Powiązane problemy