Я пытаюсь подключиться к базе данных mlab mongo в своем приложении Golang, но я всегда получаю «auth failed».Не могу соединиться с базой данных Mlab, но я могу на свое местное монго с помощью mgo golang
Если я использую мое местное Монго, у меня нет никаких проблем (мои местный не имеет аутентификации)
EDIT: Я создал базу данных пользователей в MLAB и я могу войти с этим пользователем в RoboMongo
Мой пакет базы данных выглядит следующим образом:
package database
import (
"os"
"fmt"
"sync"
"labix.org/v2/mgo"
"time"
)
type DB struct {
Database *mgo.Database
}
const (
MongoDBHosts = "mlabHost:mlabPort"
AuthDatabase = "mydatabase"
AuthUserName = "mlabUser"
AuthPassword = "mlabPassword"
)
var _init_ctx sync.Once
var _instance *DB
func New() *mgo.Database {
_init_ctx.Do(func() {
_instance = new(DB)
mongoDBDialInfo := &mgo.DialInfo{
Addrs: []string{MongoDBHosts},
Timeout: 600 * time.Second,
Database: AuthDatabase,
Username: AuthUserName,
Password: AuthPassword,
}
// Create a session which maintains a pool of socket connections
// to our MongoDB.
session, err := mgo.DialWithInfo(mongoDBDialInfo)
if err != nil {
fmt.Printf("Error en mongo: %+v\n", err)
os.Exit(1)
}
_instance.Database = session.DB(AuthDatabase)
})
return _instance.Database
}
с этим кодом, я всегда получаю «Ошибка аутентификации», но если я изменить константные значения для подключения к местной так:
const (
MongoDBHosts = "localhost:27017"
AuthDatabase = "mydatabase"
AuthUserName = ""
AuthPassword = ""
)
Все хорошо.
Я даже могу подключиться к базе данных MLAB через RoboMongo, но одна вещь, которую я заметил, что пытается подключиться из командной строки, как это:
mongo mLabHost:mLabPort/mydatabase -u mLabUser -p mLabPassword
Стремительное переспрашивает пароля, а затем я получаю (мойпароль = mLabPassword вхожу):
2016-06-25T16:07:10.822-0500 E - [main] file [mypassword] doesn't exist
failed to load: mypassword
Я попытался подключиться к MLAB несколько различных способов, но я не могу найти то, что моя проблема.
Благодаря
Возможная Дубликат [Golang и MongoDB дистанционного управления Ошибка доступа (ошибка ответа сервера на этапе аутентификации SASL: Ошибка аутентификации.)] (http://stackoverflow.com/questions/35635293/golang-and-mongodb-remote-acces s-fail-server-received-error-on-sasl-authenticat) – Tinwor
В этом вопросе ответы оказались пользователями, которые не создали пользователя базы данных mLab, но у меня есть один, который я поставил в моей строке подключения – codiaf