【发布时间】:2014-02-17 09:34:57
【问题描述】:
我部署了一个分片集群,当我尝试启用分片时,我收到以下错误。我试图在网上找到解决方案,但无法解决。
我执行了以下操作来启动 mongod/mongos 和 mongo 实例
mongod --configsvr --dbpath /data/configdb --port 27018
mongos --configdb 127.0.0.1:27018 --port 27019
mongo --configdb 127.0.0.1:27019
在 mongos 中:
mongos> sh.enableSharding("config")
{
"errmsg" : "exception: assertion src/mongo/s/config.cpp:155",
"code" : 0,
"ok" : 0
}
另外,我可以在这里创建普通集合,但不能创建分片集合。
同时,我无法在配置以外的数据库中创建普通集合
mongos> show dbs
admin (empty)
config 0.046875GB
configdb (empty)
raghu (empty)
test (empty)
mongos>
mongos> use test
switched to db test
mongos>
mongos> sh.enableSharding("test")
{ "ok" : 0, "errmsg" : "already enabled" }
mongos> db.cTest.save({Name: "Frank", Age:56, Job: "Accountant", State: "NY"});
can't create user databases on a --configsvr instance
mongos>
谁能告诉我,出了什么问题?
谢谢, 拉古
【问题讨论】:
-
您是否尝试在配置服务器数据库上启用共享?或者你有你自己的名为“config”的数据库。我怀疑这里有名称冲突。
-
顺便说一句,mongo --configdb 应该不是必需的。要启动 shell,你应该执行 'mongo localhost:27019',这是你运行 mongos 路由守护进程的地方,但我同意 Neil 的观点,我会避免在配置服务器的默认端口上运行你的 mongos。