如何卸载MongoDB并重新安装最新版本?

我需要完全从我的系统(Ubuntu 11.10)卸载mongodb,并安装2.0.5版本。
目前,当我运行:
mongo db

我得到以下错误:
MongoDB shell版本:2.0.1 连接到:db Wed Jun 6 13:05:03 错误:无法连接到服务器127.0.0.1 shell/mongo.js:84 异常:连接失败

请尝试使用以下链接:http://downloads-distro.mongodb.org/repo/ubuntu-upstart/dists/dist/10gen/binary-i386/mongodb-10gen_2.0.6_i386.deb - jasmines
3个回答

对于MongoDB,有两套软件包:标准的 Ubuntu 软件包和由 10gen 自己发布的软件包。标准软件包已经过时,特别是针对较旧版本的 Ubuntu,所以最好设置自己从 10gen 的软件库中安装。

您引用的错误信息表明您可能已经尝试过这样做,因为版本 2.0.1 不是标准的 Ubuntu 软件包。我建议首先完全卸载 Mongo 并清理系统。如果您有要保留的现有数据,可以备份它。默认情况下,数据存储在 /var/lib/mongodb 中。因此,如果您想备份,请将文件从那里复制出来并保存在安全的位置。

卸载现有的 MongoDB 软件包

由于我不确定您安装了什么,我建议采取以下措施确保一切都被卸载:

sudo apt-get purge mongodb mongodb-clients mongodb-server mongodb-dev
sudo apt-get purge mongodb-10gen
sudo apt-get autoremove

一些命令可能会失败,这取决于您实际安装了哪些软件包,但没关系。
这也应该从/etc/mongodb.conf中删除您的配置。如果您想完全清理,您可能还想删除数据目录/var/lib/mongodb,只要您备份过或不再需要它。
如果您是通过源代码构建或使用10gen二进制发行版进行安装的,则需要手动卸载和清理放置二进制文件、配置文件和数据文件的位置。
安装10gen MongoDB软件包
按照10gen的说明添加他们的存储库。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

编辑/etc/apt/sources.list,删除您已经添加的任何Mongo行,并在末尾添加以下单行(因为11.10使用upstart):
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

请注意,如果您使用软件中心添加此存储库,它将自动添加一个deb-src条目,这会破坏apt-get。因此,您需要手动编辑您的源列表,只添加上述行。
然后运行以下命令进行安装:
sudo apt-get update 
sudo apt-get install mongodb-10gen

检查您的安装

安装软件包应该会自动启动MongoDB服务器。因此,您应该能够从命令行运行客户端:

mongo

应该可以成功连接到测试数据库。您可以通过输入exit来退出。

如果连接失败,请更新您的问题并提供更多细节,包括尝试连接时的输出,并附上您的/var/log/mongodb/mongodb.log文件。


maisapride1@maisapride1:/$ sudo apt-get purge mongodb mongodb-clients mongodb-server mongodb-dev 正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成 软件包mongodb未安装,因此不会被移除 软件包mongodb-clients未安装,因此不会被移除 软件包mongodb-dev未安装,因此不会被移除 软件包mongodb-server未安装,因此不会被移除 0 升级,0 新安装,0 个要删除,406 个未升级。-----尝试移除时,再次输入mongo命令时显示的版本为:MongoDB shell 版本:2.0.1
- jyothi
没问题;就像我说的,这些命令可能会失败,这取决于你安装了哪些软件包。这些特定的错误表明你没有安装标准的Ubuntu MongoDB软件包。 - David Edwards
你运行了第二个命令以删除10gen软件包吗?如果那也没有删除任何东西,并且您仍然可以运行mongo客户端,则必须手动安装,您将不得不手动删除。 - David Edwards
我可以知道如何将MongoDB从2.0.1升级到2.0.5吗?或者如何安装MongoDB 2.0.5? - jyothi
按照我的回答中所描述的安装10gen软件包将会给您安装2.0.6版本。MongoDB官网上提供了以前的版本供下载和手动安装,但我强烈建议您使用打包版本。 - David Edwards
安装10gen时出现错误- GPG错误:http://ppa.launchpad.net oneiric Release:以下签名无法验证,因为公钥不可用:NO_PUBKEY 2EA8F35793D8809AW:无法获取http://downloads.mongodb.org/distros/ubuntu/dists/10.4/Release期望的条目“10gen/source/Sources”未在发布文件中找到(错误的sources.list条目或格式不正确的文件)E:某些索引文件下载失败。它们已被忽略,或者使用旧的文件。 - jyothi
你这里有两个错误。首先,你需要添加一个缺失的GPG密钥(与MongoDB无关);尝试运行“sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 2EA8F35793D8809A”来修复这个问题。其次,你需要编辑/etc/apt/sources.list并删除所有提到MongoDB的行,除了我上面回答中的那一行。我想你可能是使用软件中心添加了10gen仓库,并且它自动添加了一个“deb-src”用于MongoDB。你需要将其删除。 - David Edwards
非常感谢你的回答!这个问题让我疯了,你的帖子正是我需要的。 我太开心了! 我现在想亲吻你! - Marcus Hammarberg

要完全从系统中移除MongoDB,您必须删除MongoDB应用程序本身、配置文件以及包含数据和日志的任何目录。以下部分将指导您完成必要的步骤。
  1. 停止 MongoDB

    通过以下命令停止 mongod 进程:

    sudo service mongod stop
    
  2. 删除软件包

    删除之前安装的任何 MongoDB 软件包。

    sudo apt-get purge mongodb-org*
    
  3. 删除数据目录

    删除 MongoDB 数据库和日志文件。

    sudo rm -r /var/log/mongodb /var/lib/mongodb
    

按照以下步骤进行:
  • 删除锁文件
  • sudo rm /var/lib/mongodb/mongod.lock
    
  • 修复 MongoDB
  • mongod --repair
    
  • 启动 MongoDB
  • sudo service mongodb start
    
  • 启动 Mongo 控制台
  • mongo
    

    @stumblebee: 请注意类似这样的编辑建议!服务名称确实是mongodb,与原始版本一样,您可以通过软件包文件列表进行验证。 - David Foerster