Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何连接golang中的mongodb 3.0_Mongodb_Go_Mgo - Fatal编程技术网

如何连接golang中的mongodb 3.0

如何连接golang中的mongodb 3.0,mongodb,go,mgo,Mongodb,Go,Mgo,当我从2.6将我的mongodb服务器升级到3.0版本时,它无法从golang使用mgo连接 我在连接字符串中添加了'authMechanism=SCRAM-SHA-1',但它仍然无法连接到服务器。我得到的错误是,SASL支持在构建期间未启用(-tags SASL)更改服务器配置: >var schema=db.system.version.findOne({“\u id”:“authSchema”}) >schema.currentVersion=3 >db.system.version.

当我从
2.6
将我的
mongodb
服务器升级到
3.0
版本时,它无法从golang使用mgo连接


我在连接字符串中添加了
'authMechanism=SCRAM-SHA-1'
,但它仍然无法连接到服务器。我得到的错误是,
SASL支持在构建期间未启用(-tags SASL)

更改服务器配置:

>var schema=db.system.version.findOne({“\u id”:“authSchema”})

>schema.currentVersion=3

>db.system.version.save(模式)


我也有类似的问题。令人误解的是,我在网络中发现了必须包含“labix.org/v2/mgo”包的内容,尽管在官方网站(阅读时)上有更新的信息,指出至少为我工作的包“gopkg.in/mgo.v2”

我希望这能有所帮助,因为我和你的步骤相同,但没有成功,然后我更改了包参考。 此代码在我的案例中起作用:

  package main

  import (
    "fmt"
    "time"

    "gopkg.in/mgo.v2"
  )

  //const MongoDb details
  const (
    hosts      = "ds026491.mongolab.com:26491"
    database   = "messagingdb"
    username   = "admin"
    password   = "youPassword"
    collection = "messages"
  )

  func main() {

    info := &mgo.DialInfo{
        Addrs:    []string{hosts},
        Timeout:  60 * time.Second,
        Database: database,
        Username: username,
        Password: password,
    }

    session, err1 := mgo.DialWithInfo(info)
    if err1 != nil {
        panic(err1)
    }

    col := session.DB(database).C(collection)

    count, err2 := col.Count()
    if err2 != nil {
        panic(err2)
    }
    fmt.Println(fmt.Sprintf("Messages count: %d", count))
  }

它也在

上,所以这是运行时错误还是编译器错误?运行时错误,在我重新安装mongodb服务器后就可以了。请删除mgo包并使用“-tags sasl”选项再次获取。这可以解决您当前的问题。您可能需要libsasl2 dev来创建新包<代码>获取-标签sasl labix.org/v2/mgo但是!!!在它之后,我得到
无法建立SASL会话:SASL(-4):没有可用的机制:找不到有价值的机制
请告诉我是否找到了解决方法。在我的系统中安装更多包后,客户端上出现新的错误消息
,因为:服务器在SASL身份验证步骤上返回错误:身份验证失败
和服务器
身份验证失败SCRAM-SHA-1身份验证失败,storedKey不匹配
这对我没有任何帮助。使用DialWithInfo时仍无法获取身份验证。我已经确认我的所有信息都是正确的,因为我能够通过另一个客户端连接到数据库。注意:我使用的是Go1.7.1