升级mongodb没有任何效果,仍然显示旧版本

swa*_*esh 36 ubuntu mongodb

以下是我用于将我的mongodb版本从2.6.9升级到最新版本的命令,但它仍然显示我以前的版本.让我知道我在升级过程中遇到了什么问题.问题是mongod -version仍然显示升级后安装的旧版本.

我提到的文档 - Mongodb Docs

我遵循的步骤 -

  • sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
  • echo"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 update
  • sudo apt-get install -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) ...
Run Code Online (Sandbox Code Playgroud)

在此之后我开始服务 - sudo service mongod restart

但它仍然显示我的版本2.6.9让我知道我在这里做错了什么..或错过任何一步?

Lio*_*ior 55

我处于完全相同的情况,按照完全相同的步骤,并有相同的问题.

对我有用的是:

卸载:

sudo service mongod stop
sudo apt-get purge mongodb-org*
Run Code Online (Sandbox Code Playgroud)

不要删除数据目录 - 如果这样做,您的所有数据都将丢失.

注意:调用将sudo apt-get purge mongodb-org*删除该mongod.conf文件.如果您希望在更新后保留此文件,请确保创建它的备份副本并在安装新版本后使用它.

然后安装mongodb:

sudo apt-get install -y mongodb-org
Run Code Online (Sandbox Code Playgroud)

这假定您已经执行了先前的安装步骤(导入公钥,创建列表文件,重新加载本地包数据库),如您所述.

  • 您无需卸载/清除.而是明确告诉mongo安装程序安装所需的确切版本,它将起作用.在官方文件的最后添加了最后一步,OP没有这样做.这个答案确实有效,它可以运行:/sf/answers/2426735671/ (4认同)

mal*_*olm 28

[ 免责声明 ]在进入升级之前,请考虑从2.6移动到3. +需要更新存储文件.如果您要从3.2更新到3.4或3.4到3.6,则相同.重要提示:例如,您无法直接从3.2升级到3.6.你必须升级"一步一步"3.2 - > 3.4 - > 3.6.有关详细信息,请参阅此问题/答案

如果要恢复旧数据库,则必须执行此操作

截至编写3.6是MongoDB的最新版本.这里有一些细节

请注意,版本之间的更改也会考虑.conf文件中的某些语法.

[ Procedure ]更一般的更新框架是遵循此处所示的典型过程,但指向已安装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
Run Code Online (Sandbox Code Playgroud)

`

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
Run Code Online (Sandbox Code Playgroud)

`

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
Run Code Online (Sandbox Code Playgroud)

`

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
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案适用于任何版本的Mongo和Ubuntu.而且我认为比另一方好.问题是你需要更新2.6 - > 3. +中的数据,甚至当这样步进3.2 - > 3.4 - > 3.6时,我会在这个答案上放一个免责声明:https://docs.mongodb.com/手动/发行,票据/ 3.6升级副本集/ (3认同)
  • 这很有效,只需将3.2.0替换为您要安装的任何版本 (2认同)

Den*_*rev 8

运行这个:

sudo apt-get update 
sudo apt-get --only-upgrade install mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
Run Code Online (Sandbox Code Playgroud)


vas*_*shu 6

您可以更换二进制文件以升级到mongodb 3.0,如下所示(适用于Ubuntu/CentOs但是为Ubuntu列出了命令):

  1. 从mongodb网站下载tar,根据您的分发:https://www.mongodb.org/downloads
  2. Untar下载文件.

    tar -zxvf {mongo-tar-file} .tgz

  3. 停止mongod服务.

    sudo服务mongod停止

  4. 将二进制文件从tar/bin替换为/ usr/bin.

    cd {your-extracted-folder}/bin

    sudo mv -f*/usr/bin /

  5. 启动mongod服务.

    sudo服务mongod开始

在此之后连接到mongo之后,您可以看到版本已更新.我已经在生产服务器上以这种方式升级而没有任何问题.

您应该在升级之前备份数据.通常不需要备份/恢复,但有时事情不会按预期进行.


小智 5

您应该手动更新每个包。所以尝试:

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
Run Code Online (Sandbox Code Playgroud)

然后手动更新每个包

sudo apt-get install mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools