Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save oldfartdeveloper/c1f3a6eca11a55b5a648c6d3d298121b to your computer and use it in GitHub Desktop.
Save oldfartdeveloper/c1f3a6eca11a55b5a648c6d3d298121b to your computer and use it in GitHub Desktop.
Multiple MySQL Versions with Homebrew

Multiple MySQL Versions with Homebrew

NOTE: this is me experimenting w/ more recent versions. This isn't working yet.

For homebrew version 1.3.0.

brew -v # => Homebrew 1.3.0

Install the current 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 version of mysql.

# Find older mysql versions
brew search mysql  
  
# Install older mysql version
brew install [email protected]

# Start agent for older version of mysql (including on login)
ln -sfv /usr/local/opt/[email protected]/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/[email protected]

Then to switch to the older version.

# Unlink current mysql version
brew unlink mysql 

# Check older mysql version
ls /usr/local/Cellar/[email protected] # => 5.6.37

# Link the older version
brew switch [email protected] 5.6.37

And to switch back to the current version.

# Unlink older mysql version
brew unlink [email protected] 

# Check current mysql version
ls /usr/local/Cellar/mysql # => 5.7.19

# Link the current version
brew switch mysql 5.7.19

To 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/[email protected]/5.6.37/bin/mysql

# Or using the mysql command
mysql --version

And to 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/[email protected]
rm ~/Library/LaunchAgents/[email protected]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment