我需要在不关机的情况下进行分片,或者重新启动端口27017中的现有mongo实例。
我尝试了以下操作(当默认端口正在运行和mongo实例时)

mongod --shardsvr --dbpath /var/lib/mongodb/dba --port 10001 > /var/log/mongodb/shardlog/sharda.log &
mongod --shardsvr --dbpath /var/lib/mongodb/dbb --port 10002 > /var/log/mongodb/shardlog/shardb.log &

mongod --configsvr --dbpath /var/lib/mongodb/config --port 20000 > /var/log/mongodb/shardlog/configdb.log &
mongos --configdb localhost:20000 > /var/log/mongodb/shardlog/mongos.log &

然后Mongos日志给出一个错误,
Thu Aug 23 14:44:36 [mongosMain] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Thu Aug 23 14:44:36 [mongosMain] ERROR:   addr already in use

Mongos正在端口20000上运行,但为什么它要尝试连接默认的27017端口?
我可以用几个碎片启动mongos而不干扰端口27017上的现有mongo实例吗?

最佳答案

从您给出的命令列表来看,您似乎没有告诉mongos在与默认端口不同的端口上启动。
您需要为--port提供mongos参数才能在其他端口上启动。
尝试:mongos --configdb localhost:20000 --port 10003
注意:mongos没有像上面所说的那样在端口20000上运行。配置服务器正在该端口上运行

关于mongodb - Mongo分片而不关闭现有的mongo实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12095058/

10-12 14:23