次の方法で mongodb レプリカ セットをセットアップできます。
mongo --port 27020 < config.js
config.js
JavaScript構成ファイルはどこにありますか:
config = {
_id: "rsRunly",
members: [{
_id: 0,
host: "o502:27018"
}, {
_id: 1,
host: "o502:27019"
}, {
_id: 3,
host: "o502:27021"
}]
};
rs.initiate(config);
rs.status();
しかし、インラインで行うことはできません:
mongo --port 27020 < 'config = {_id: "rsRunly", members: [ {_id: 0, host: "o502:#27020"}, {_id: 1, host: "o502:27019"}, {_id: 3, host: "o502:27021"}]}; rs.initiate(config); rs.status();';
エラーが発生しました:
2014-08-05T06:48:34.218-0400 SyntaxError: Unexpected identifier at (connect)
exception: connect failed
使ってみた--eval
mongo --port 27020 --eval 'config = {_id: "rsRunly", members: [ {_id: 0, host: "o502:27020"}, {_id: 1, host: "o502:27019"}, {_id: 3, host: "o502:27021"}]}; rs.initiate(config); rs.status();'
そして、それは私に出力を与えます:
MongoDB shell version: 2.6.3
connecting to: 127.0.0.1:27020/test
[object Object]
ただし、レプリカ セットは作成されません。
レプリカ セット構成をインラインで作成する必要があるのはなぜですか? sh
最初にすべてのmongoノードが開始され、次にレプリカセットが開始される1つの大きなファイルを作成しているためです。そして、 bashコードをドライに保つため$port1
に、$port2
、などのbash変数を使用しています。$port3
したがって、インライン構成の代わりに使用する場合は、ファイルとファイルconfig.js
でポート番号を 2 回編集する必要があります。sh
config.js
では、ファイルではなくbashコマンドを使用してレプリカセットを開始する方法はconfig.js
?