我是mongo db的新手。 我刚刚在我的MAC上安装了mongo DB,
观看此Youtube视频后
https://www.youtube.com/watch?v=pWbMrx5rVBE&t=369s
在mongo shell中,我输入了show dbs,我得到了有线输出。 请帮助我理解并解决这个问题
> show dbs
2017-09-11T02:45:34.298+0530 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "unable to open cursor at URI statistics:table:collection-2-2362555297355466682. reason: No such file or directory",
"code" : 43,
"codeName" : "CursorNotFound"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:769:19
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1
答案 0 :(得分:2)
经过几次研究,我找到了解决方案并分享了我学到的所有知识,所以没有新的学习者像我一样挣扎。
我的错误:
我正在使用:
盯着mongodbmongod --config "c:\MongoDB\Mongod.cfg"
并通过运行
启动mongo shell mongo
启动Mongo DB和Shell
然后明白,每个命令的作用:
|*| Start Mongo DB with default config :
mongod
|*| Start Mongo DB with config file :
mongod -f "c:\MongoDB\Mongods.cfg"
|Or|
mongod --config "c:\MongoDB\Mongod.cfg"
|O| Start Mongo DB with config flags :
mongod --dbpath "c:\mongodb\data\nameMdb" --logpath "c:\mongodb\log\nameMdbLog.log" --directoryperdb --logappend
所以相应地我们也应该使用mongo来启动shell:
|*| Start Mongo shell with default config :
mongo
|*| Start Mongo shell with localhost config flags :
mongo --host localhost --port 28888
|*| Start Mongo shell with public config flags and user details :
mongo --username <user> --password <pass> --host <Host.IP.Adrs> --port 28888
| * |这里用示例说明创建配置文件:
https://github.com/mongodb/mongo/blob/master/rpm/mongod.conf
答案 1 :(得分:0)
我今天遇到了这个问题,用Homebrew安装最新版本的MongoDB,然后启动mongo shell并输入命令“show dbs”。我多次测试这个并花了一些时间来研究它。这些症状与此处报告的问题相符:https://jira.mongodb.org/browse/SERVER-20753此问题被描述为与MongoDB分开构建WiredTiger并使用WiredTiger的过时版本。
虽然你和我所经历的情况并非如此(注意Homebrew目前正在安装3.4.9和WiredTiger 2.9.2),但我猜测它可能是WiredTiger和MongoDB之间类似的不匹配,所以我决定尝试安装不同的版本。
我最后使用这个Homebrew命令安装了最新的“dev”版本:
brew install mongodb --devel
这会安装没有问题的MongoDB 3.5.13和WiredTiger 3.0.0。请注意,3.4.9在您报告此问题的那天发布,3.5.13在第二天发布,尽管3.4.9仍然是此处列出的当前社区版:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
答案 2 :(得分:0)
我在配置 Mongodb 进行复制时遇到了类似的问题。
当我运行以下命令时:
mongo
show dbs
我收到错误:
> show dbs
uncaught exception: Error: listDatabases failed:{
"topologyVersion" : {
"processId" : ObjectId("60ddea05beb1d89d4d139546"),
"counter" : NumberLong(0)
},
"ok" : 0,
"errmsg" : "not master and slaveOk=false",
"code" : 13435,
"codeName" : "NotPrimaryNoSecondaryOk"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs/<@src/mongo/shell/mongo.js:147:19
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:99:12
shellHelper.show@src/mongo/shell/utils.js:937:13
shellHelper@src/mongo/shell/utils.js:819:15
@(shellhelp2):1:1
这是我修复它的方法:
问题是我在没有初始化复制的情况下在 /etc/mongod.conf
文件中启用了复制功能,因此 MongoDB 无法判断哪个副本是主副本或辅助副本。
我所要做的就是注释掉 /etc/mongod.conf
文件中的复制功能,因为我还没有准备好设置复制:
#replication
# replSetName: my-replica-set-name
之后我重新启动了mongodb服务器:
sudo systemctl restart mongod
这次命令运行良好。
仅此而已。
我希望这会有所帮助