2

我需要在不关闭或重新启动端口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端口?

我可以在不干扰端口 27017 上现有的 mongo 实例的情况下使用多个分片启动 mongos 吗?

4

1 回答 1

6

从您给出的命令列表中,您似乎没有告诉在mongos与默认端口不同的端口上启动。

您需要提供--port参数 formongos才能在不同的端口上启动。

尝试:mongos --configdb localhost:20000 --port 10003

注意:mongos如您上面所说,它没有在端口 20000 上运行。您在该端口上运行了配置服务器

于 2012-08-23T15:41:20.037 回答