当我尝试启用分片时...我收到以下错误........
use admin
switched to db admin
> db.runCommand( { enablesharding : "sgserver" } )
{ "ok" : 1 }
> db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )
"ok" : 0,
"errmsg" : "please create an index over the sharding key before sharding."
> db.sgserver.ensureIndex({"fileGUID": 1})
> db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )
"ok" : 0,
"errmsg" : "please create an index over the sharding key before sharding."
它坚持要我创建一个索引,但是如果我尝试创建一个索引,我就会得到上面提到的错误。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
sgserver
数据库中是否有admin
个集合?
在执行ensureIndex()
之前,我没有看到切换到正确数据库的命令。代码可能看起来像这样:
db.runCommand( { enablesharding : "sgserver" } );
use sgserver;
db.sgserver.ensureIndex({"fileGUID": 1});
db.runCommand( { shardcollection : "sgserver.block_seek_pos", key : {fileGUID : 1} } )