golang连接mongodb问题

使用Java连接可以成功
连接字符串为mongodb://admin:adgjmptw@localhost/test
同样的连接字符串用go语言连接一直错误
2015/06/04 18:05:22 auth failed
使用Database 的Login方法返回error
2015/06/04 18:06:40 Login errauth failed
求大神解决

共 7 个回复


jimmykuu

直接这样不行?

session, err := mgo.Dial("mongodb://admin:adgjmptw@localhost/test")
# 0

Memory_Leak

是啊
session, err := mgo.Dial("mongodb://admin:adgjmptw@localhost/test")
这样也会报错 auth failed
直接在mongo shell里登录就没事儿

# 1

Memory_Leak

看来只能我自己來终结此帖了。。。

我在公司电脑(Ubuntu)装的mongodb版本是3.0,使用的驱动是labix.org/v2/mgo
使用

session, err := mgo.Dial("mongodb://admin:adgjmptw@localhost/test")

各种连接失败
后来用自己电脑(Fedora21+mongodb2),使用相同的连接方法,就能连接成功了。
可能是我用的驱动版本不支持新版本的mongodb吧

# 2

CJL

我也遇到同样的问题,用其它语言连可以,用 mgo 就不行。后来把验证分成两步写就连上了:

// host 是不带用户名密码的连接地址
session, err := mgo.Dial(host)
if err != nil {
    panic(err)
}

err = session.DB(db).Login(user, pass)
if err != nil {
    panic(err)
}
# 3

Skycat

mgo驱动问题 连接3.0的mongodb会出现验证问题,看文档没看见v2的驱动如何添加验证

# 4

wangxufire

mongodb3.0.7 mgoV2
session, err := mgo.Dial(“mongodb://admin:adgjmptw@localhost/test”)

可以连啊。
ArchLinux

# 5

LoveCoati

这几天维护一份就代码,现在连接的是mongodb3.0.15 用了上面的方法都不行,参考了下面的问题回答最后更新了github上的代码后解决了 mgo

# 6