2016-08-03 3 views
15

Ниже приведено мое соединение с модемным соединением MongoDB от GoLang. Но он возвращает панику «сервер ответил на шаге аутентификации SASL: Ошибка аутентификации.». Мое имя пользователя, пароль, hostAddrs и имя dbName верны. Что мне здесь не хватает?сервер возвратил ошибку на этапе аутентификации SASL: Ошибка аутентификации

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

Не могли бы вы выбрали в качестве [право ответить на это] (https://stackoverflow.com/a/43749668/295716) из @anantha, ТНХ – Antoine

ответ

35

Я столкнулся с аналогичной ошибкой и добавил --authenticationDatabase параметр и он работал в то время как мы подключение к удаленному MongoDB

Используйте аналогичную ниже формата в коде :

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

Спасибо, в моем случае это было именно решение. – Rav

+1

Я смущен ... что такое параметр --authenticationDatabase? имя базы данных, к которой вы хотите получить доступ? – vabm

+0

В моем случае у меня был доступ только к одному db на сервере. Поэтому мне нужно было просто добавить опцию -d '. Не нужно '--authenticationDatabase' для меня – alaster

3

mgo возвращает эту ошибку, если username, password или database неверны. Проверьте свои учетные данные дважды. Нет других ситуаций, когда вы можете увидеть сообщение об ошибке Authentication failed.

+0

сервер возвратил ошибку на этапе аутентификации SASL: ошибка аутентификации. panic: ошибка времени выполнения: неверный адрес памяти или nereference dereference \t panic: ошибка времени выполнения: неверный адрес памяти или разворот указателя на нуль –

+0

Это сообщения об ошибках –

+0

Это правильный способ реализовать соединение? –

1

ошибки вы сообщаете, кажется, причина неудачи аутентификации вызываются нулевым указателем, вы должны проверить данные, прежде чем использовать их для создания соединения

+1

Я не знаю, как понял ваш избиратель, но я уверен, что ничего не понял из вашего ответа. Ум разрабатывает больше ...? – rrw

+0

Ну вот уже более 1 года я не знаю точно, о чем я думал. Вероятно, моя идея заключалась в том, что приложение Golang не может вывести из хоста один или несколько env_variable. – Bestbug

5

Часто мы путать с параметром в команде mongoexport с «Входом -In "пользователь. Команда ожидает, что «Имя пользователя базы данных» не будет использоваться для входа в систему. Это одна возможность ввести неправильное имя пользователя. «Имя пользователя базы данных» можно найти в разделе «Пользователи» вкладке для базы данных

+0

В моем случае я использовал пароль вместо пароля db. Глупая ошибка, но этот ответ помог мне разобраться! – ahaurat