英文:
how to connect mongodb 3.0 in golang
问题
当我将我的mongodb
服务器从版本2.6
升级到3.0
时,无法使用mgo从golang连接。
我在连接字符串中添加了'authMechanism=SCRAM-SHA-1'
,但仍无法连接到服务器。我得到的错误是SASL support not enabled during build (-tags sasl)
。
英文:
When I upgrade my mongodb
server to version 3.0
from 2.6
it can't connect from golang use mgo.
I add 'authMechanism=SCRAM-SHA-1'
in connection string, and it still can't connect to the server. The error that I get is SASL support not enabled during build (-tags sasl)
答案1
得分: 3
我遇到了类似的问题。在网络上误导性地发现,尽管在官方网站http://labix.org/mgo(阅读时)上有更新和更新的信息,指向至少对我有效的包"gopkg.in/mgo.v2",但必须包含"labix.org/v2/mgo"包。
我希望这可以帮助,因为我按照与你相同的步骤进行了尝试,但没有成功,然后我更改了包的引用。
以下是在我的情况下工作的代码:
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))
}
它也在Github上。
英文:
I had similar issue. Misleadingly I found around the network that has to be included the "labix.org/v2/mgo" package despite the fact that on the official site http://labix.org/mgo (at the time of the reading) it has newer and updated information that points to at least working for me package "gopkg.in/mgo.v2".
I hope this can help since I got to the same steps as you without success and then I have changed the package reference.
This code worked in my case:
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))
}
It is also on Github
答案2
得分: 0
更改服务器配置:
> var schema = db.system.version.findOne({"_id" : "authSchema"})
<br/>
> schema.currentVersion = 3
<br/>
> db.system.version.save(schema)
https://jira.mongodb.org/browse/SERVER-17459
英文:
change server configurations:
> var schema = db.system.version.findOne({"_id" : "authSchema"})
<br/>
> schema.currentVersion = 3
<br/>
> db.system.version.save(schema)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论