gpt4 book ai didi

mongodb - 使用 mgo 连接到副本集

转载 作者:IT王子 更新时间:2023-10-29 01:43:13 31 4
gpt4 key购买 nike

我正在使用 mtools 在端口 27017、27018 和 27019 上启动具有 3 个节点的副本集 (mlaunch --replicaset)。

但是,我在使用 mgo 包中的 Dial 连接到副本集时遇到了困难。下面的代码片段出现消息 no reachable servers:

type Person struct {
Name string `bson:"name"`
Age int `bson:"age"`
}

func main() {
session, err := mgo.Dial("localhost:27017,localhost:27018,localhost:27019")
if err != nil {
panic(err)
}
c := session.DB("mydb").C("testCollection")
c.Insert(&Person{Name: "Foo", Age: 20})
}

如何使用 mgo 包连接到副本集?

最佳答案

您需要运行rs.initiate() 来完成初始副本集配置。这将启动一个成员副本集。然后,您使用正确的主机参数运行 rs.add(),以使其他成员联机。

这里有一个关于这个过程的教程:

http://docs.mongodb.org/manual/tutorial/deploy-replica-set/

一般来说,如果您在代码中针对 mongodb 运行某些东西时遇到问题,请尝试通过 mongo shell 连接并执行相同的操作,这通常是一个好主意 - 它可以为您节省大量时间和精力。

要使用 mlaunch 重新启动此进程,您需要以这种方式运行它:

mlaunch --init --replicaset

这将初始化并启动一个名为“replset”的 3 节点副本集

关于mongodb - 使用 mgo 连接到副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041249/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com