当前位置: 首页>>技术问答>>正文


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

, ,

问题描述

我需要从我的系统(Ubuntu 11.10)中完全卸载mongodb并安装2.0.5版本。

目前,当我跑:

mongo db

我收到以下错误:

MongoDB shell version: 2.0.1
connecting to: db
Wed Jun 6 13:05:03 Error: couldn’t connect to server 127.0.0.1 shell/mongo.js:84 exception: connect failed

最佳解决方法

MongoDB有两套包装;标准的Ubuntu包,以及由10gen自己发布的一套。标准软件包已经过时,特别是对于Ubuntu的旧版本,因此最好从10gen存储库进行安装。

您引用的错误消息表明您可能已经尝试过此操作,因为版本2.0.1不是标准的Ubuntu软件包。我建议首先,你完全卸载Mongo并清理你的系统。如果您有要保留的现有数据,则可以对其进行备份。默认情况下,它存储在/var/lib/mongodb中。因此,如果您想要备份,请从那里获取文件的副本并将它们保存在安全的地方。

卸载现有的MongoDB软件包

由于我不是100%安装的东西,我建议以下内容确保所有内容都已卸载:

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 instructions添加他们的存储库:

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文件的输出。

次佳解决方法

要从系统中完全删除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
    

第三种解决方法

按照步骤:

  1. 删除锁定文件

    sudo rm /var/lib/mongodb/mongod.lock
    
  2. 修理mongodb

    mongod --repair
    
  3. 启动mongodb

    sudo service mongodb start
    
  4. 启动mongo控制台

    mongo
    

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1755.html,未经允许,请勿转载。