41
votes

Following are the commands which I used to upgrade my mongodb version from 2.6.9 to latest, but its still showing me the previous version. Let me know what I am doing wrong with the upgrading process. The problem is that mongod -version still shows the old version installed after upgrade.

Docs which I refer to - Mongodb Docs

Steps I followed -

  • 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

Result -

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) ...

After this I re started the service - sudo service mongod restart

But still its showing me version 2.6.9 Let me know what I am doing wrong here..or missed any step ?

7
Make a backup of your db, than purge package sudo apt-get purge mongodb-org, and install with provided steps.vanadium23
@vanadium23 I believe its the last option ..can't we have something in between ?swapnesh
@GauravDave Have you read the question ? I already mentioned this linkswapnesh
I have given again, so that you can re-visit and see, if you have missed out any point.Gaurav Dave

7 Answers

64
votes

I'm in the exact same situation, followed the exact same steps, and had the same issue.

What worked for me was:

Uninstalling:

sudo service mongod stop
sudo apt-get purge mongodb-org*

Do NOT remove data directories - all your data will be lost if doing so.

Note: Calling sudo apt-get purge mongodb-org* deletes the mongod.conf file. In case you want to keep this file after the update, make sure you create a backup copy of it and use it after the new version has been installed.

Then install mongodb with:

sudo apt-get install -y mongodb-org

This assumes that you've already performed the previous installation steps (importing the public key, creating a list file, reloading local package database) as you've stated.

29
votes

[Disclaimer] Before going into upgrade consider that moving from 2.6 to 3.+ requires an update on storage files. Same if you are updating from 3.2 to 3.4 or 3.4 to 3.6. Important: You can't directly upgrade from 3.2 to 3.6, for example. You must upgrade "step by step" 3.2-->3.4-->3.6. See this question/answer for details.

This is necessary if you want to recover your old DBs

As of writing 3.6 is the latest version of MongoDB. Some details here

Beware that changing between versions also regards some syntax in .conf file.

[Procedure] A more general framework for updating is to follow the typical procedure as shown here, but point to "Install a specific release of MongoDB" part of this guide as you already have MongoDB installed.

An example on 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
9
votes

Run this:

sudo apt-get update 
sudo apt-get --only-upgrade install mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
5
votes

You can replace binaries to upgrade to mongodb 3.0 as follows (works on Ubuntu/CentOs but commands are listed for Ubuntu) :

  1. Download tar from mongodb website as per your destribution from : https://www.mongodb.org/downloads
  2. Untar downloaded file.

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

  3. Stop mongod service.

    sudo service mongod stop

  4. Replace binaries from your tar/bin to /usr/bin.

    cd {your-extracted-folder}/bin

    sudo mv -f * /usr/bin/

  5. Start mongod service.

    sudo service mongod start

After you connect to mongo after this, you can see version has been updated. I have upgraded in this way on my production servers without any issue.

You should backup your data before upgrading. Usually no backup/restore is necessary but sometimes things don't go as expected.

5
votes

You should update each package manually. So try:

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

and then update each pakage manually

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

2
votes

Step 1: First you need to uninstall existing mongodb

  1. stop Mongodb service

    sudo service mongod stop

  2. Remove Packages.

    sudo apt-get purge mongodb-org*

  3. Remove Data Directories. (optional)

    sudo rm -r /var/log/mongodb

    sudo rm -r /var/lib/mongodb


Step 2: Then Install latest mongodb (i.e. 3.4)

1. Import the public key used by the package management system.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

2. Create a list file for MongoDB. (Ubuntu 16.04)

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

3. Reload local package database.

sudo apt-get update

4. Install the latest stable version of MongoDB

sudo apt-get install -y mongodb-org

5. Start MongoDB.

sudo service mongod start

6. Verify that MongoDB has started successfully

Verify that the mongod process has started successfully by checking the contents of the log file at /var/log/mongodb/mongod.log for a line reading

[initandlisten] waiting for connections on port

where is the port configured in /etc/mongod.conf, 27017 by default.

1
votes

Thank. I action step by step this is done on ubuntu 14.04 LTS

Download tar from mongodb website as per your destribution from : https://www.mongodb.org/downloads Untar downloaded file.

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

Stop mongod service.

sudo service mongod stop

Replace binaries from your tar/bin to /usr/bin.

cd {your-extracted-folder}/bin

sudo mv -f * /usr/bin/

Start mongod service.

sudo service mongod start