2016-08-03 31 views
15

Oto mój numer połączenia MongoDB od GoLangu. Ale przywraca on sygnał błędu "serwer zwrócił błąd na etapie uwierzytelniania SASL: Uwierzytelnienie nie powiodło się." ". Moja nazwa użytkownika, hasło, hostAddrs i dbName są poprawne. Czego tu mi brakuje?Serwer zwrócił błąd w kroku uwierzytelniania SASL: Uwierzytelnianie nie powiodło się

dbName: = os.Getenv("ENV_DBNAME") 
userName: = os.Getenv("ENV_DBUSER") 
password: = os.Getenv("ENV_DBPASS") 
dbHost: = os.Getenv("ENV_DBHOST") 
mongoDialInfo: = & mgo.DialInfo { 
Addrs: [] string { 
    dbHost 
}, 
Database: dbName, 
Username: userName, 
Password: password, 
Timeout: 60 * time.Second, 
} 
sess, err: = mgo.DialWithInfo(mongoDialInfo) 
if (err != nil) { 
panic(err) 

} 
+0

można wybrać jako [prawidłowa odpowiedź to] (https://stackoverflow.com/a/43749668/295716) od @anantha, thx serwer – Antoine

Odpowiedz

35

wychodził podobny błąd i dodał --authenticationDatabase parametr i to działało, a my łączenia się ze zdalnym MongoDB

użycie podobnego poniżej formatu w kodzie :

$mongorestore --host databasehost:98761 --username restoreuser 
--password restorepwd --authenticationDatabase admin --db targetdb ./path/to/dump/ 
+0

Dzięki, w moim przypadku to było właśnie rozwiązanie. – Rav

+1

Jestem zdezorientowany ... jaki jest parametr - authenthenticationDatabase? nazwa bazy danych, do której chcesz uzyskać dostęp? – vabm

+0

W moim przypadku miałem dostęp tylko do jednej bazy danych na serwerze. Musiałem więc dodać opcję '-d '. Nie potrzebujesz '- authenthentDatabase' dla mnie – alaster

3

mgo zwraca ten błąd jeśli username, password lub database są błędne. Sprawdź swoje poświadczenia dwa razy. Nie ma innych sytuacji, gdy zobaczysz komunikat o błędzie Authentication failed.

+0

zwrócony błąd na etapie uwierzytelniania SASL: Uwierzytelnianie nie powiodło się. panika: błąd wykonania: niepoprawny adres pamięci lub zerowa dereferencja wskaźnika \t panika: błąd czasu wykonania: nieprawidłowy adres pamięci lub zerowy wskaźnik dereferencji –

+0

To są komunikaty o błędach –

+0

Czy to jest właściwy sposób wdrożenia połączenia? –

1

Błąd zgłosić wydają przyczyną uwierzytelniania negatywną spowodowane zerowej wskaźnika, należy sprawdzić dane przed ich użyciem, aby utworzyć połączenie

+1

Nie wiem, w jaki sposób up-voter cię zrozumiał, ale jestem pewien, że nic nie zrozumiałem z twojej odpowiedzi. Umysł rozwijający więcej ...? – rrw

+0

Cóż, po ponad roku nie wiem dokładnie, co myślałem. Prawdopodobnie mój pomysł polegał na tym, że aplikacja Golang nie może odzyskać jednej lub więcej zmiennych env_variable od hosta. – Bestbug

5

Często mylony z parametru w poleceniu mongoexport z „Zaloguj -W "użytkownik. Polecenie oczekuje nazwy użytkownika bazy danych, a nie nazwy użytkownika zalogowania. Jest to jedna z możliwości wpisania niewłaściwej nazwy użytkownika. „Nazwa użytkownika bazy danych” można znaleźć w sekcji „Użytkownicy” Zakładka do bazy

+0

W moim przypadku użyłem mojego hasła mLab zamiast hasła db. Głupi błąd, ale ta odpowiedź pomogła mi to rozgryźć! – ahaurat