我在OS X上有一个过时的mongodb版本(1.8.2),我不能为我的生活弄清楚如何摆脱它。它是几年前安装的,我认为与自制软件。使用brew update && brew upgrade mongo
升级它让我获得了mongo客户端的最新版本(2.4.9),但是当我打开客户端并运行时
use admin
db.runCommand({buildInfo:1})
我得到了
{
...
"version" : "1.8.2",
...
}
当我问
时which mongo
我得到了
/usr/local/bin/mongo
是
的符号链接(如预期的那样)/usr/local/Cellar/mongodb/2.4.9/bin/mongo
也
/usr/local/opt/mongodb
似乎已正确符号链接到
/usr/local/Cellar/mongodb
查看/usr/local/Cellar/mongodb
,我发现了两个过时的版本(其中一个是1.8.2)并移动了它们以查看会发生什么。答案是什么。 Mongo客户端仍然启动并将客户端版本报告为2.4.9,但db.runCommand({buildInfo:1})
仍然报告1.8.2。我已经通过自制软件卸载并重新安装,但只是不知道罪魁祸首在哪里。非常感谢任何帮助。
答案 0 :(得分:4)
基于您在OS X中运行MongoDB的事实,以下是我的假设:
如果我的所有3个假设都是真的,你可以去手动删除所有mongoDB可执行文件。它们应该都在同一个目录中。将该目录移动到废纸篓,以及dbpath和日志路径的内容。
在mongo shell中运行getCmdLineOpts命令将帮助您识别dbpath和日志路径 http://docs.mongodb.org/manual/reference/command/getCmdLineOpts/
此链接包含重新安装MongoDB的说明: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/
如果您有任何问题,请告诉我。
答案 1 :(得分:1)
它是brew update
,然后brew upgrade mongodb
不是brew update mongo
。
答案 2 :(得分:1)
感谢您的意见,你们。答案结果证明是一个特别顽固的mongod版本。它设置为使用launchctl在系统启动时启动,因此即使我重新启动计算机它也会持续存在。我按照this rather old post中的建议从launchctl中删除了它,然后通过从mongo shell运行以下命令来停止mongod:
> use admin
> db.shutdownServer()
之后我从/usr/local/Cellar/mongodb/2.4.9/homebrew.mxcl.mongodb.plist
复制了自制的mongo plist文件
进入/Library/LaunchDaemons
并运行
$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.mongodb.plist
重启机器,一切似乎都运行良好2.4.9。
答案 3 :(得分:0)
如果您安装了旧版本,最好使用ls /usr/local/Cellar
检查文件夹
我在一个名为mongodb26
的文件夹下进行了安装,因为我手动选择使用MongoDB 2.6。在这种情况下,只是brew uninstall mongodb
无法工作。我不得不做brew uninstall mongodb26
。知道一点点好事。