1

次の方法で mongodb レプリカ セットをセットアップできます。

mongo --port 27020 < config.js

config.jsJavaScript構成ファイルはどこにありますか:

    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 回編集する必要があります。shconfig.js

では、ファイルではなくbashコマンドを使用してレプリカセットを開始する方法はconfig.js?

4

1 に答える 1