6

このドキュメントを使用して、Macbook Pro に開発/テスト レプリケーション セットを展開しようとしています。

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

mongod の 3 つのインスタンスをそれぞれポート 10001、10002、10003 で開始しました。構成ファイルを使用して mongod を開始しました。以下の構成ファイル:

rs0:

dbpath = /Users/Thomas/mongodb/data/rs0/
port = 10000
logpath = /Users/Thomas/mongodb/log/rs0.log
logappend = true
replSet = rs0

rs1:

dbpath = /Users/Thomas/mongodb/data/rs1/
port = 10001
logpath = /Users/Thomas/mongodb/log/rs1.log
logappend = true
replSet = rs0

rs2:

dbpath = /Users/Thomas/mongodb/data/rs2/
port = 10002
logpath = /Users/Thomas/mongodb/log/rs2.log
logappend = true
replSet = rs0

そして、次のコマンドを使用して開始します。

mongod -f config/rs0.conf
mongod -f config/rs1.conf
mongod -f config/rs2.conf

次に、mongo: mongo localhost:10001 を使用して接続しますが、rs.initiate() コマンドを使用して repl セットを初期化すると、失敗しました。

> rs.initiate()
{
"startupStatus" : 4,
"info" : "rs0",
"errmsg" : "all members and seeds must be reachable to initiate set",
"ok" : 0
}

rs.status() で確認します

> rs.status()
{
"startupStatus" : 4,
"errmsg" : "can't currently get local.system.replset config from self or any seed (EMPTYUNREACHABLE)",
"ok" : 0
}

ログは、それが EMPTYUNREACHABLE エラーであることを示しています。どうすれば解決できますか?

***** SERVER RESTARTED *****

Mon Oct 15 22:02:31 [initandlisten] MongoDB starting : pid=568 port=10000              dbpath=/Users/Thomas/mongodb/data/rs0/ 64-bit host=bogon
Mon Oct 15 22:02:31 [initandlisten]
Mon Oct 15 22:02:31 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Mon Oct 15 22:02:31 [initandlisten] db version v2.2.0, pdfile version 4.5
Mon Oct 15 22:02:31 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Mon Oct 15 22:02:31 [initandlisten] build info: Darwin bs-osx-106-x86-64-1.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Mon Oct 15 22:02:31 [initandlisten] options: { config: "config/rs0.conf", dbpath: "/Users/Thomas/mongodb/data/rs0/", logappend: "true", logpath: "/Users/Thomas/mongodb/log/rs0.log", port: 10000, replSet: "rs0", rest: "true" }
Mon Oct 15 22:02:31 [initandlisten] journal dir=/Users/Thomas/mongodb/data/rs0/journal
Mon Oct 15 22:02:31 [initandlisten] recover : no journal files present, no recovery needed
Mon Oct 15 22:02:31 [websvr] admin web console waiting for connections on port 11000
Mon Oct 15 22:02:31 [initandlisten] waiting for connections on port 10000
Mon Oct 15 22:02:37 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:02:43 [rsStart] couldn't connect to bogon:10000: couldn't connect to server bogon:10000
Mon Oct 15 22:02:49 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
Mon Oct 15 22:03:05 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:03:11 [rsStart] couldn't connect to bogon:10000: couldn't connect to server bogon:10000
Mon Oct 15 22:03:17 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
Mon Oct 15 22:03:33 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:03:39 [rsStart] couldn't connect to bogon:10000: couldn't connect to server   bogon:10000
Mon Oct 15 22:03:45 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
Mon Oct 15 22:04:01 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:04:07 [rsStart] couldn't connect to bogon:10000: couldn't connect to server bogon:10000
Mon Oct 15 22:04:13 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
4

3 に答える 3

8

bind_ipを127.0.0.1に設定するか、「bogon」のエントリを/ etc /hostsに追加してみてください。

mongodbはローカルシステムのhostname()を取得しているようですが、解決できません。

于 2012-10-15T14:58:20.120 に答える
2

今日、正確な問題に直面しました。mongodb は起動できましたが、レプリカ セットは起動できませんでした。mongod.conf ファイルから次の行を削除する必要がありました

「bind_ip: "127.0.0.1"」

また、mongodb とレプリカ セットの mongod.conf ファイルが異なっていて、別の場所に保存されていることもわかりました。「/usr/local/etc/mongod.conf」でレプリカ セットの構成ファイルを見つけました。

于 2012-10-16T18:35:49.167 に答える
0

参考までに、2.2.0 でこのバグに遭遇したと思います。

https://jira.mongodb.org/browse/SERVER-7367

これは現在修正されており、2.2.1 でのリリースが予定されています。2.2.0 の修正では、基本的に、セットに解決可能で到達可能なアドレスを使用するようにする必要があります。これは、2.2.0 がネットワーク経由でローカル インスタンスに到達しようとするためです。

于 2012-10-17T23:17:42.340 に答える