Cannot connect to Postgres server running through brew services
Solution 1:
I had the same error and I fixed it by removing the process pid file:
rm -f /usr/local/var/postgres/postmaster.pid
Solution 2:
I ran into this problem today. postgres stopped accepting connections though homebrew thought it was running.
To fix it I ran,
brew services restart -vvv postgresql
Output from this command,
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Generated plist for postgresql:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>homebrew.mxcl.postgresql</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/postgresql/bin/postgres</string>
<string>-D</string>
<string>/usr/local/var/postgres</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/usr/local</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>
</dict>
</plist>
Then I thought, hmm maybe there's something in that log file,
tail -n 10 /usr/local/var/log/postgres.log
Sure enough,
[4826] FATAL: lock file "postmaster.pid" already exists
[4826] HINT: Is another postmaster (PID 1489) running in data directory "/usr/local/var/postgres"?
So, I removed that file
rm /usr/local/var/postgres/postmaster.pid
And everything started working again.
Solution 3:
In my case the postmaster.pid
file wasn't even there. Got it working by upgrading postgres.
brew update
brew upgrade
Then, because I upgraded the major version from 10 to 11, I also had to run this:
brew postgresql-upgrade-database
(source https://github.com/facebook/react-native/issues/18760#issuecomment-410533581)