Learn how to completely uninstall (and reinstall) PostgreSQL with Homebrew on Mac.
If you’re having problems starting up your PostgreSQL databases running on Homebrew, such as the classic:
could not connect to server: No such file or directory
You can try restarting PostgreSQL services:
brew services restart postgresql
And run psql:
psql
But that often doesn’t work.
Sometimes the fastest way to solve the problem by uninstalling PostgreSQL entirely, and reinstalling a fresh version.
Uninstall PostgreSQL with Homebrew
This will show you how to completely remove PostgreSQL with Homebrew.
Warning: If you have any important projects on your machine that run on PostgreSQL databases, now is the time to back them up, because the following will wipe out PostgreSQL completely!
First Open your Terminal, and run the following command to make sure that PostgreSQL is actually installed with Homebrew:
brew list
If it doesn’t show up, you’re in the wrong tutorial!
Before you move on, run the following two commands to make sure that your Homebrew installation is healthy, and up to date:
brew doctor
brew update
brew doctor
is Homebrew's self-diagnosis tool.
Now uninstall PostgreSQL with Homebrew with this command:
brew uninstall postgresql
When the uninstaller is finished, remove all your local PostgreSQL files with these two commands:
rm -rf /usr/local/var/postgres
rm -rf .psql_history .psqlrc .psql.local .pgpass .psqlrc.local
PostgreSQL is now completely gone from your machine.
Install PostgreSQL with Homebrew
If you want to reinstall PostgreSQL with Homebrew again, run another update on Homebrew (for good measure):
brew update
I know you just updated Homebrew, but sometimes I have to do it twice to make it work (I don’t know why).
And then install PostgreSQL:
brew install postgres
Now you can start PostgreSQL services with this command:
brew services start postgresql
To test that it works, we can create the default database:
createdb `whoami`
Connect to PostgreSQL by running this command:
psql
If everything went well your terminal will output the following (or similar):
$ psql
psql (12.0)
Type "help" for help.
yourusername=#