问题描述
以下是我用来将mongodb版本从2.6.9升级到最新版本的命令,但仍显示以前的版本。让我知道升级过程中我做错了什么。问题是,mongod -version
仍显示升级后安装的旧版本。
我参考的文件-Mongodb Docs
我遵循的步骤-
-
须藤apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10
-
回声“ deb http://repo.mongodb.org/apt/ubuntu” $(lsb_release -sc)“ /mongodb-org /3.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
-
sudo apt-get更新
-
sudo apt-get安装-y mongodb-org
结果-
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
mongodb-org
1 upgraded, 0 newly installed, 0 to remove and 139 not upgraded.
Need to get 3,608 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://repo.mongodb.org/apt/ubuntu/ trusty/mongodb-org/3.0/multiverse mongodb-org amd64 3.0.2 [3,608 B]
Fetched 3,608 B in 0s (18.3 kB/s)
(Reading database ... 298790 files and directories currently installed.)
Preparing to unpack .../mongodb-org_3.0.2_amd64.deb ...
arg: upgrade
Unpacking mongodb-org (3.0.2) over (2.6.9) ...
Setting up mongodb-org (3.0.2) ...
之后,我重新启动了服务-sudo service mongod restart
但仍然向我显示版本2.6.9
让我知道我在这里做错了什么。或错过了任何步骤?
最佳方法
我处于完全相同的情况,遵循完全相同的步骤,并且遇到了相同的问题。
对我有用的是:
sudo service mongod stop
sudo apt-get purge mongodb-org*
请勿删除数据目录-这样做会丢失所有数据。
注意:调用sudo apt-get purge mongodb-org*
会删除mongod.conf
文件。如果要在更新后保留此文件,请确保创建该文件的备份副本,并在安装新版本后使用它。
然后install mongodb与:
sudo apt-get install -y mongodb-org
如前所述,假设您已经执行了先前的安装步骤(导入公钥,创建列表文件,重新加载本地软件包数据库)。
次佳方法
[免责声明]在升级之前,请考虑从2.6升级到3. +要求对存储文件进行更新。如果从3.2更新到3.4或从3.4更新到3.6,则相同。重要提示:例如,您不能直接从3.2升级到3.6。您必须“逐步”升级3.2-> 3.4-> 3.6。有关详细信息,请参见this question/answer。
如果要恢复旧数据库,这是必需的
在撰写本文时,3.6是MongoDB的最新版本。一些细节here
请注意,在版本之间进行更改也要考虑.conf文件中的某些语法。
[过程]一个更通用的更新框架是按照here所示的典型过程进行操作,但是由于您已经安装了MongoDB,因此请指向本指南的“安装MongoDB的特定版本”部分。
在Ubuntu 14.04上的示例:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org=3.2.18 mongodb-org-server=3.2.18 mongodb-org-shell=3.2.18 mongodb-org-mongos=3.2.18 mongodb-org-tools=3.2.18
第三种方法
运行这个:
sudo apt-get update
sudo apt-get --only-upgrade install mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
第四种方法
您可以按以下方式替换二进制文件以升级到mongodb 3.0(可在Ubuntu /CentO上使用,但列出了适用于Ubuntu的命令):
-
根据您的分布从mongodb网站下载tar,网址为:https://www.mongodb.org/downloads
-
解压下载的文件。 tar -zxvf {mongo-tar-file} .tgz
-
停止mongod服务。 sudo服务mongod停止
-
将二进制文件从tar /bin替换为/usr /bin。 cd {your-extracted-folder} /bin sudo mv -f * /usr /bin /
-
启动mongod服务。 sudo服务mongod启动
在此之后连接到mongo之后,您可以看到版本已更新。我已经以这种方式在生产服务器上进行了升级,没有任何问题。
You should backup your data before upgrading. Usually no backup/restore is necessary but sometimes things don’t go as expected.
第五种方法
您应该手动更新每个软件包。因此,请尝试:
dpkg -l | grep mongo
ii mongodb-org 3.2.10 amd64 MongoDB open source document-oriented database system (metapackage)
ii mongodb-org-mongos 3.2.10 amd64 MongoDB sharded cluster query router
hi mongodb-org-server 3.2.10 amd64 MongoDB database server
ii mongodb-org-shell 3.2.14 amd64 MongoDB shell client
ii mongodb-org-tools 3.2.14 amd64 MongoDB tools
然后手动更新每个包装
sudo apt-get install mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools