Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using brew upgrade Mongo update from 3.4 to 4.0 error: The data files need to be fully upgraded to version 3.6 before attempting an upgrade to 4.0

Tags:

mongodb

mongod

I got the following error

** IMPORTANT: UPGRADE PROBLEM: The data files need to be fully upgraded to version 3.6 before attempting an upgrade to 4.0; see http://dochub.mongodb.org/core/4.0-upgrade-fcv for more details.

But if I use

brew services start mongodb

then mongo server can start.

To fix the mongod error

I found the similar error thread

Error while upgrading Mongodb from 3.2 to 3.6

So I downgraded to mongodb 3.6, and run

db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )

and then reinstall mongodb 4.0, I still have the same error when I run

mongodb

I still have to use

brew services start mongodb

to start mongodb

In command line, I run

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
> 

It says featureCompatibilityVersion is 3.6

What else I need to do to satisfy "The data files need to be fully upgraded to version 3.6 "?

Thanks!

like image 488
searain Avatar asked Jul 08 '18 00:07

searain


2 Answers

I need to downgrade MongoDB to 3.4. Clean up all the versions. Then upgrade to 3.6 and 4.0 step by step.

First of all, back up your /data/db, just in case.

The following steps are from my experience, I used brew to install/uninstall mongodb.

I followed the instruction from this thread, but run the following steps on iMac.

Error while upgrading Mongodb from 3.2 to 3.6

Uninstall your current mongodb

brew uninstall mongodb

Install mongodb 3.4 version

brew install [email protected]

Start mongod 3.4 version (when you install the old version like above, you need the full path to run it.)

/usr/local/opt/[email protected]/bin/mongod

Start mongo 3.4 version

/usr/local/opt/[email protected]/bin/mongo

Run the important command

> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )

Quit

>quit();

Terminate the mongod

Find PID of mongod process using $ top

Kill the process by $ kill <PID> (the Mongo docs have more info on this)

Uninstall mongodb 3.4

brew uninstall [email protected]

Repeat the above steps for 3.6

Install mongodb 3.6 version

brew install [email protected]

Start mongod 3.6 version

/usr/local/opt/[email protected]/bin/mongod

Start mongo 3.6 version

/usr/local/opt/[email protected]/bin/mongo

Run the important command

> db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )

...

Last, after uninstall 3.6, then you can install the most current version, 4.x, you don't have to specify the @4.x etc., just

Install the most current version

brew install mongodb
like image 87
searain Avatar answered Jan 04 '23 10:01

searain


I would better just do it via mongodump/mongorestore procedures.

like image 44
WHITECOLOR Avatar answered Jan 04 '23 10:01

WHITECOLOR