Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 创建副本集的Bash脚本_Mongodb_Bash_Replication_Replicaset - Fatal编程技术网

Mongodb 创建副本集的Bash脚本

Mongodb 创建副本集的Bash脚本,mongodb,bash,replication,replicaset,Mongodb,Bash,Replication,Replicaset,我正在aws中使用replicaSet mongo,我的目标是使用bash脚本命令在运行时设置副本 我的bash看起来像这样: mongo mongodb://10.0.1.100 --eval "rs.initiate( { _id : 'rs0', members: [{ _id: 0, host: '10.0.1.100:27017' }]})" mongo mongodb://10.0.1.100 --eval "rs.add( '10.0.2.100:27017' )" mongo m

我正在aws中使用replicaSet mongo,我的目标是使用bash脚本命令在运行时设置副本

我的bash看起来像这样:

mongo mongodb://10.0.1.100 --eval "rs.initiate( { _id : 'rs0', members: [{ _id: 0, host: '10.0.1.100:27017' }]})"
mongo mongodb://10.0.1.100 --eval "rs.add( '10.0.2.100:27017' )"
mongo mongodb://10.0.1.100 --eval "rs.add( '10.0.3.100:27017' )"
mongo mongodb://10.0.1.100 --eval "db.isMaster().primary"
mongo mongodb://10.0.1.100 --eval "rs.slaveOk()"
但是当我登录实例并运行rs.status()时,我得到一个错误,即找不到配置

所以我尝试了另一种方式。我访问了我的fresh mongo实例,并通过mongo命令行插入了var配置,如:

var config={_id:"rs0",members:[{_id:0,host:"10.0.1.100:27017"}, {_id:1,host:"10.0.2.100:27017"}, {_id:2,host:"10.0.3.100:27017"}]};
> rs.initiate(config);
如果我运行rs.status,它就会工作


我想通过LinuxBash命令脚本运行相同的命令来启动配置,但我找不到解决方案。有什么帮助吗?

在bash中运行shell是否有任何输出?如果没有,请尝试将
--verbose
添加到每一行。在我的mongodb.log中,我有:2020-05-11T22:34:47.109+0000 i REPL[initandlisten]在启动时未找到本地投票支持的文档。2020-05-11T22:34:47.109+0000 I REPL[initandlisten]在启动时未找到本地副本集配置文档;NoMatchingDocument:在local.system.replset中未找到副本集配置文档(带或不带--verbose),我的意思是运行带有--verbose的
mongo
命令以从中获取输出。尽管如此,如果这就是mongod日志中的全部内容,那么您的bash脚本似乎没有建立连接。我认为您是对的。我的bash脚本未连接。因为如果我访问我的实例并运行mongo命令,我可以添加副本,但是bash不能。我不明白为什么没有连接。事实上--verbose并没有打印任何内容,这证明bash没有防火墙,因为在bash中运行shell时没有任何输出?如果没有,请尝试将
--verbose
添加到每一行。在我的mongodb.log中,我有:2020-05-11T22:34:47.109+0000 i REPL[initandlisten]在启动时未找到本地投票支持的文档。2020-05-11T22:34:47.109+0000 I REPL[initandlisten]在启动时未找到本地副本集配置文档;NoMatchingDocument:在local.system.replset中未找到副本集配置文档(带或不带--verbose),我的意思是运行带有--verbose的
mongo
命令以从中获取输出。尽管如此,如果这就是mongod日志中的全部内容,那么您的bash脚本似乎没有建立连接。我认为您是对的。我的bash脚本未连接。因为如果我访问我的实例并运行mongo命令,我可以添加副本,但是bash不能。我不明白为什么没有连接。事实上--verbose没有打印任何内容,这证明bash没有启动