Setup Multiple MySql’s with homebrew in Mac local machine

Install multiple versions of MySql in mac and switch back nd forth if required.
mysql
database

Setup Multiple MySql’s with homebrew in Mac local machine

Had a specific scenario in my projects where two services are using MySql but different versions. So had to switch between different MySql versions on demand.

  • Will try to support for brew version For homebrew version 0.9.5.
    brew -v # => Homebrew 0.9.5
  • Install the current/latest version of mysql.
    # Install current mysql version
    brew install mysql
    
    # Start agent for current version of mysql (including on login)
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • Install the older/Specific version of mysql.
      
    # Find older mysql versions
    brew search mysql  
      
    # Install older mysql version
    brew install homebrew/versions/mysql56
    
    # Start agent for older version of mysql (including on login)
    ln -sfv /usr/local/opt/mysql56/*.plist ~/Library/LaunchAgents
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql56.plist
  • Then to switch to the older version.
    # Unlink current mysql version
    brew unlink mysql 
    
    # Check older mysql version
    ls /usr/local/Cellar/mysql56 # => 5.6.27
    
    # Link the older version
    brew switch mysql56 5.6.27
  • switch back to the current version.
    # Unlink older mysql version
    brew unlink mysql56 
    
    # Check current mysql version
    ls /usr/local/Cellar/mysql # => 5.7.10
    
    # Link the current version
    brew switch mysql 5.7.10
  • Verify which mysql version you’re on at any time.
    # Check which version of mysql is currently symlinked
    ls -l /usr/local/bin/mysql # => /usr/local/bin/mysql@ -> ../Cellar/mysql56/5.6.27/bin/mysql
    
    # Or using the mysql command
    mysql --version
  • unload a mysql agent for a given version.
    # Stop agent for current version of mysql
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
    # Stop agent for older version of mysql
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql56.plist
    rm ~/Library/LaunchAgents/homebrew.mxcl.mysql56.plist