I'm trying to configure sharding in one machine and I keep getting an error message when trying to add shards. I'm using the following website as a reference: http://www.javahotchocolate.com/notes/mongodb-sharding.html
I'm using a single machine and using different ports to simulate the different IPs.
I have a configuration as follows:
Replica set members:
mongod --dbpath \rs1_p\db --port 27017 --replSet rs1
mongod --dbpath \rs1_s1\db --port 27018 --replSet rs1
mongod --dbpath \rs1_s2\db --port 27019 --replSet rs1
mongod --dbpath \rs1_p\db --port 47017 --replSet rs2
mongod --dbpath \rs1_s1\db --port 47018 --replSet rs2
mongod --dbpath \rs1_s2\db --port 47019 --replSet rs2
Configuring replica sets in MongoDB shell:
config =
{
_id:"rs1",
members:
[
{ _id:0, host:"computerName:27017" },
{ _id:1, host:"computerName:27018" },
{ _id:2, host:"computerName:27019" }
]
}
rs.initiate( config )
config =
{
_id:"rs2",
members:
[
{ _id:0, host:"computerName:47017" },
{ _id:1, host:"computerName:47018" },
{ _id:2, host:"computerName:47019" }
]
}
rs.initiate( config )
Launching configuration servers:
mongod --dbpath \c1\db --configsvr --port 37017
mongod --dbpath \c2\db --configsvr --port 37018
mongod --dbpath \c3\db --configsvr --port 37019
Launching sharding routers:
mongos --port 27077 --configdb computerName:37017, computerName:37018, computerName:37019
mongos --port 27078 --configdb computerName:37017, computerName:37018, computerName:37019
All okay until here, but In getting an error message in the next step
sh.addShard('rs1/computerName:27017')
I'm getting the follow error:
{
"ok" : 0.0,
"errmsg" : "no such command: 'addShard', bad cmd: '{ addShard: \"rs1/computerName:27017\" }'",
"code" : 59
}
I can not seem to get around from this error message.
Any ideas on what am I missing.
Thanks
as per documentation
Run addShard when connected to a mongos instance. The command takes the following form when adding a single database instance as a shard
when you run this connected to mongo shell you will get that error, so you need to connect to let say mongo --port 27078
and issue that command.
mongo --host <hostname of machine running mongos> --port <port mongos listens on>
manaual
more here and here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With