Setup Multiple MySql’s with homebrew in Mac local machine
Install multiple versions of MySql in mac and switch back nd forth if required.
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