Mongodb 创建副本集的Bash脚本
我正在aws中使用replicaSet mongo,我的目标是使用bash脚本命令在运行时设置副本 我的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
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没有启动