How to install earlier version of mongodb with homebrew?

后端 未结 7 691
一整个雨季
一整个雨季 2020-12-22 20:07

I\'m on osx6.8 and need to install an earlier version of Mongodb, how do I install an earlier version with HomeBrew? The below didn\'t work :(

dream-2:app2         


        
相关标签:
7条回答
  • 2020-12-22 20:27

    Note: In September 2019 mongodb was removed from homebrew core, so these instructions have been updated to use mongodb-community instead, installed from the external tap.

    If your current installation is still the pre-September mongodb package then you will need to use that name when you unlink, stop, relink and start, on the lines marked with #*# below.

    Another option is to simply upgrade away from the deprecated package now.

    I already have the latest version of mongo installed, thanks to.

    brew tap mongodb/brew
    
    brew install mongodb-community
    

    But I want to switch to the old version sometimes. First, install it:

    brew search mongo
    
    brew install mongodb-community@3.2
    

    Let's stop the current mongodb, if it is running:

    brew services stop mongodb/brew/mongodb-community           #*#
    
    # or if you had started it manually
    
    killall mongod
    

    Now I want 3.2 on my PATH instead of the latest:

    brew unlink mongodb-community                               #*#
    
    brew link --force mongodb-community@3.2
    

    (Apparently it needs --force because it is keg-only.)

    Now I have 3.2 on my PATH, I can start the test DB:

    mongod --version
    
    brew services start mongodb/brew/mongodb-community
    
    # or start your own mongod from the command-line
    

    When I am finished, I can do the reverse to switch back to the latest version:

    brew services stop mongodb/brew/mongodb-community
    
    brew unlink mongodb-community@3.2
    
    brew link mongodb-community                                 #*#
    
    brew services start mongodb/brew/mongodb-community          #*#
    

    And restart again.

    0 讨论(0)
  • 2020-12-22 20:27

    Instead of using homebrew you can use docker to install as many versions of mongodb as you want. Each mongodb can then run on separate ports.

    Install docker with brew cask install docker and then open Docker.app. After docker is running, go to Terminal and install your mongodb version by selecting an image from https://hub.docker.com/_/mongo/ like so: docker run -d -p 28017:27017 --name mongo4 mongo:latest

    Verify that it's running with docker ps and you can connect to mongodb from you app using port 28017. Repeat the steps with a different name and port to install more versions. Enjoy!

    0 讨论(0)
  • 2020-12-22 20:27

    I was able to install it using these instructions:

    Installing MongoDB on OSX for local development

    Over the last week, I’ve been building our MongoDB cluster on EC2 for production. For development, however, we’ll still need to install MongoDB locally. I’m running OSX 10.6.8, but these install instructions should be the same on all modern OSX versions.

    Installing on OSX is much more pleasant than on EC2 (actually it’s just as easy on EC2, but since it’s a simpler setup there’s n real configuration or head scratching).

    Download the latest binary:

    curl -O http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.0.2.tgz

    Note!: If you don’t have wget installed, simply download the file above by visiting the link in your web browser and move it into your home directory.

    We’re going to install everything under /usr/local/mongodb to keep things organized.

    Create the directories (switch 'youruser' with your home user name):

    sudo mkdir /usr/local/mongodb

    sudo mkdir /usr/local/mongodb/log

    sudo mkdir/usr/local/mongodb/data

    sudo chown youruser /usr/local/mongodb/log

    sudo chown youruser /usr/local/mongodb/data

    sudo chgrp staff /usr/local/mongodb/log

    sudo chgrp staff /usr/local/mongodb/data

    Un-tar the binaries and move them into the correct folder:

    tar -xvzf ~/mongodb-osx-x86_64-2.0.2.tgz

    sudo mv ~/mongodb-osx-x86_64-2.0.2/* /usr/local/mongodb/

    Create a config file for mongod:

    sudo vi /usr/local/mongodb/mongod.conf

    Paste:

    dbpath=/usr/local/mongodb/data

    logpath=/usr/local/mongodb/log/mongod.log

    logappend=false

    bind_ip=127.0.0.1

    Note: dbpath and logpath specify the path to their respective files, logappend is set to overwrite the log file on each start of the database server, bind_ip only allows local connections.

    Create an alias so that issuing mongod always read the config file:

    vi ~/.profile

    Paste:

    # MongoDB Alias'

    alias mongod="/usr/local/mongodb/bin/mongod --config=/usr/local/mongodb/mongod.conf"

    All done, you should be able to simply type mongod after you reload the shell to start MongoDB. I preferred not to start mongod on boot, but there are other who prefer to and there’s plenty of documentation online to show you how to set that up with launchd and creating a .plist.

    http://alexanderwong.me/post/15259867190/installing-mongodb-on-osx-for-local-development

    0 讨论(0)
  • 2020-12-22 20:34

    When trying to install old versions of something with homebrew, it's usually useful to start with brew search packagename, in this case, there's a 2.6 version available under homebrew/versions/mongodb26

    So, to install that version:

    brew install homebrew/versions/mongodb26
    
    0 讨论(0)
  • 2020-12-22 20:41
    curl -O https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-3.2.12.tgz
    tar -zxvf mongodb-osx-x86_64-3.2.12.tgz
    mkdir -p mongodb
    cp -R -n mongodb-osx-x86_64-3.2.12/ mongodb
    export PATH=<mongodb-install-directory>/bin:$PATH #path to the dir created in step 3
    mkdir -p /data/db
    sudo chown -R $(whoami) /data/
    mongod
    
    0 讨论(0)
  • 2020-12-22 20:41

    Addition to the excellent answer of joeytwiddle :

    if you don't want to link then unlink the old version of the software, you can just run it from the "cellar" (/usr/local/Cellar/), where brew installed it. Use ls /usr/local/Cellar/ to find the exact path of the executable. For example in my case, to run mongo shell:

    /usr/local/Cellar/mongodb@3.6/3.6.7/bin/mongo
    
    0 讨论(0)
提交回复
热议问题