Step 0 - Install homebrew

Homebrew is a package manager that simplifies all database installs and management on a Mac.

=> Learn more on how to install Homebrew <=


Install Services

MySQL

Install service.

# This will precisely install MySQL version 5.6
brew install mysql56

Start service.

brew services start mysql56

Postgres

Install service.

brew install postgres

Create a postgres user.

createuser -d -a -s -P postgres

Start service.

brew services start postgresql

MongoDB

Install community-edition service.

brew tap mongodb/brew
brew install mongodb-community

Start service.

brew services start mongodb-community

Step 2 - Database management

Homebrew can download, install, and manage 3rd party libraries. Here are a few helpful commands for managing these locally-installed databases.

=> Install Homebrew Services to manage your databases. <=


YOU'RE DONE!


Troubleshooting

MySQL Errors

If you see this error, it can either mean that there are permission issues or things that did not install correctly.

MySQL socket error

Learn to Read the Error Logs

I generally suggest we first look at the error logs and see if we can better understand the problem.

The error log can be found here:

nano /usr/local/var/mysql/[look for your username].err 

Common MySQL Errors

I've seen a lot of errors in my lifetime, and when it comes to MySQL, here are a few more common ones.


Last Resort

If you can't make sense of the error log, then one option is to uninstall MySQL and re-install everything.

Uninstall MySQL

brew uninstall mysql

# Clean things up
brew cleanup --force

# Remove any associated files or folders
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

# Remove any plists that might be lingering around
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

# Remove the MySQL folder with recursion and force
sudo rm -rf /usr/local/var/mysql

Reinstall MySQL

brew install mysql

# Check your installation
ps aux | grep mysql 

# Initialize the MySQl daemon 
mysqld --initialize --explicit_defaults_for_timestamp

# Start the MySQL server (don't use sudo)
mysql.server start