2

ポート 27017、27018、および 27019mtoolsで 3 つのノード ( ) を持つレプリカ セットを起動するために使用しています。mlaunch --replicaset

Dialただし、mgo パッケージを使用して実際にレプリカ セットに接続するのは困難です。以下のコード スニペットは、次のメッセージでパニックします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 パッケージを使用してレプリカ セットに正確に接続するにはどうすればよいですか?

4

1 に答える 1

2

rs.initiate()レプリカ セットの初期構成を完了するには、実行する必要があります。これにより、1 メンバーのレプリカ セットが開始されます。次にrs.add()、ホストの正しいパラメーターを使用して実行し、他のメンバーをオンラインにします。

プロセスに関するチュートリアルは次のとおりです。

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

一般に、コード内から mongodb に対して何かを実行する際に問題が発生した場合は、mongo シェルを介して接続して同じことを実行することをお勧めします。これにより、時間と労力を大幅に節約できます。

mlaunch を使用してこのプロセスを再開するには、次のように実行する必要があります。

mlaunch --init --replicaset

これにより、「replset」という名前の 3 ノード レプリカ セットが初期化され、起動されます。

于 2014-06-04T16:51:51.290 に答える