Mongodb 分片 - 没有这样的命令:'addShard'
Mongodb Sharding - no such command: 'addShard'
我正在尝试在一台机器上配置分片,但在尝试添加分片时不断收到错误消息。我使用以下网站作为参考:http://www.javahotchocolate.com/notes/mongodb-sharding.html
我正在使用一台机器并使用不同的端口来模拟不同的 IP。
我的配置如下:
副本集成员:
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
在 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 )
正在启动配置服务器:
mongod --dbpath \c1\db --configsvr --port 37017
mongod --dbpath \c2\db --configsvr --port 37018
mongod --dbpath \c3\db --configsvr --port 37019
启动分片路由器:
mongos --port 27077 --configdb computerName:37017, computerName:37018, computerName:37019
mongos --port 27078 --configdb computerName:37017, computerName:37018, computerName:37019
到这里一切正常,但在下一步中收到错误消息
sh.addShard('rs1/computerName:27017')
我收到以下错误:
{
"ok" : 0.0,
"errmsg" : "no such command: 'addShard', bad cmd: '{ addShard: \"rs1/computerName:27017\" }'",
"code" : 59
}
我似乎无法摆脱这个错误信息。
关于我遗漏了什么的任何想法。
谢谢
根据文档
Run addShard when connected to a mongos instance. The command takes the following form when adding a single database instance as a shard
当您 运行 连接到 mongo shell 时,您将收到该错误,因此您需要连接以说 mongo --port 27078
并发出该命令。
mongo --host <hostname of machine running mongos> --port <port mongos listens on>
我正在尝试在一台机器上配置分片,但在尝试添加分片时不断收到错误消息。我使用以下网站作为参考:http://www.javahotchocolate.com/notes/mongodb-sharding.html
我正在使用一台机器并使用不同的端口来模拟不同的 IP。
我的配置如下:
副本集成员:
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
在 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 )
正在启动配置服务器:
mongod --dbpath \c1\db --configsvr --port 37017
mongod --dbpath \c2\db --configsvr --port 37018
mongod --dbpath \c3\db --configsvr --port 37019
启动分片路由器:
mongos --port 27077 --configdb computerName:37017, computerName:37018, computerName:37019
mongos --port 27078 --configdb computerName:37017, computerName:37018, computerName:37019
到这里一切正常,但在下一步中收到错误消息
sh.addShard('rs1/computerName:27017')
我收到以下错误:
{
"ok" : 0.0,
"errmsg" : "no such command: 'addShard', bad cmd: '{ addShard: \"rs1/computerName:27017\" }'",
"code" : 59
}
我似乎无法摆脱这个错误信息。
关于我遗漏了什么的任何想法。
谢谢
根据文档
Run addShard when connected to a mongos instance. The command takes the following form when adding a single database instance as a shard
当您 运行 连接到 mongo shell 时,您将收到该错误,因此您需要连接以说 mongo --port 27078
并发出该命令。
mongo --host <hostname of machine running mongos> --port <port mongos listens on>