Postgres.app Could not start on port 5432
MacosPostgresqlMacos Problem Overview
I'm using http://postgresapp.com. In the menubar it gives the error " Could not start on port 5432." Similarly if I try to start the server from the terminal, I get:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
I also ran pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
and got the output server starting
but still get the same errors when connecting to psql.
Macos Solutions
Solution 1 - Macos
If you are running your server on a macOS machine and installed Postgres through Homebrew, you can stop the current instance like this:
> brew services stop postgresql
Then click the Elephant in the native menu-bar at the top of the screen and it should successfully startup.
Solution 2 - Macos
You can stop the process by finding the PID with
lsof -i :5432
and then killing it with
kill -9 <PID>
Solution 3 - Macos
If you've installed Postgres via another method (for example, from www.postgresql.org) and it's starting automatically at startup, you can prevent that Postgres from starting via the following:
sudo launchctl unload /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist
sudo rm -f /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist
TIP: use tab to autocomplete after the com.edb.launchd
part to figure out what version is loading.
Restart Postgres.app and you should be good to go.
(from http://forums.enterprisedb.com/posts/list/1831.page;jsessionid=70621DC48C99EDE663A6A594B05F1A02#6782)
Solution 4 - Macos
I was just having this exact issue. When I ran which psql
it was pointing at the Postgres client tools installed with Lion:
/usr/bin/psql
Using a hint from Frank Wiles I ran ps auxw | grep post
to confirm that postgres was running and that it was running on the right port, that also showed me the postgres.app path:
/Applications/Postgres.app/Contents/MacOS/bin/postgres
.
So I edited by .bash_profile to export that directory. On first effort I added it to the end of the path. When I ran echo $PATH
I could see that usr/bin was the first thing in the path, and which psql
still gave the /usr/bin
path. At that point a friend guided me in the right direction:
export PATH="/Applications/Postgres.app/Contents/MacOS/bin:${PATH}"
Start a new terminal window, then run which psql
-- it should point to the postgres.app location and psql should fire up the postgres shell. Works fine now.
Solution 5 - Macos
You my have another instance of postgres running, that is the only application interested in this port. You should use netstat and ps to determine this. Then stop the instance and uninstall it, you mayhave installed enterpiseDb for example, that is what I did.
Solution 6 - Macos
I have tried just about every solution to this problem that is out there. For me it always happens when my MacBook's battery dies, even if the computer is already sleeping. I was poking around in ~/Library/Application\ Support/Postgres/var-9.4
and I discovered another postmaster.pid
file that I had not seen before. I deleted it, and now everything is back up and running! I am running the Postgres.app version, not the brew version.
Steps I took:
- Make sure
postgres.app
is not running. - Run
rm ~/Library/Application\ Support/Postgres/var-9.$X/postmaster.pid
- If you don't have a
var-9.$X
directory, just runrm ~/Library/Application\ Support/Postgres/postmaster.pid
- Restart
postgres.app
- Get back to developing cool stuff.
Solution 7 - Macos
This command is a one-liner that instantly kills all PostgresSQL processes.
sudo kill -kill $(sudo lsof -t -i :5432)
This fixed all my problems on Mac OSX Mojave 10.14.1.
Solution 8 - Macos
I generally face this issue on my mac, and this fixes it for me always
rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql
Hope this is helpful
Solution 9 - Macos
I had a similar problem where I could not connect to the Postgres.app even though the app itself said that it is running on port 5432.
I am not sure why, but even when I quit the app and checked that no postgres processes was running with ps -a. these files existed:
/tmp/.s.PGSQL.5432
and
/tmp/.s.PGSQL.5432.lock
My solution was to delete these files and then start the postgres.app again.
Solution 10 - Macos
This is what worked for me: $ sudo pkill -u postgres
Props to this resource: https://github.com/PostgresApp/PostgresApp/issues/197#issuecomment-474534056
Solution 11 - Macos
It can also happen that the PID is taken. This ocurred to me when the Computer suffered an unexpected reboot.
If so, you must go to:
˜/Library/Application Support/Postgres/var-9.4
You can check that path in Postgres.app Preferences dialog.
And then, just remove the pid file
sudo rm postmaster.pid
And the server starts up right away.
Solution 12 - Macos
When trying to open the Postgres app was getting that same error regarding post 5432 (on Mac OSX 10.10.5)
I did:
$ lsof -i | grep LISTEN
Saw which PID was running postgres at that port, did:
$ killall {pid}
and then $ brew uninstall postgres
After that, restarted my Mac, and ran:
$ lsof -i | grep LISTEN
again just to make sure. Saw no postgres running anywhere and was able to open the Postgres app without getting that warning.
Then I reinstalled postgres with $ brew install postgres
ANOTHER OPTION:
(I also tried this one time when the above approach didn't work and I could not kill any of the PID)
$ ps auxw | grep post
Saw a slew postgres processes, which I then sudo kill <PID>
Everything working fine now.
Solution 13 - Macos
At a guess, something else had taken port 5432 so the app chose to run on 5433 instead.
Why not just connect to Pg on port 5433, if that's where it's running? You have a /tmp/.s.PGSQL.5432
socket file, so you can connect with psql -p 5433
for UNIX domain socket connections. It'll also be listening on the same port with TCP/IP, so you can use psql -h localhost -p 5433
for TCP/IP and have your apps connect to port 5433 instead of 5432.
Change your .psqlrc
to set the new port as default and you can forget it isn't on the default port.
Solution 14 - Macos
I had similar problem when trying to use postgresql with rails. Updating my Gemfile to use new version of gem pg solve this problem for me. (gem pg version 0.16.0 works). In the Gemfile use:
gem 'pg', '0.16.0'
then run the following to update the gem
bundle install --without production
bundle update
bundle install
Solution 15 - Macos
Mine failed to start up suddenly, and when I checked Console.app I saw:
com.heroku.postgres-service:
FATAL: could not create shared memory segment: Cannot allocate memory
DETAIL: Failed system call was shmget(key=5432001, size=3874816, 03600).
HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter. You can either reduce the request size or reconfigure the kernel with larger SHMALL. To reduce the request size (currently 3874816 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
The PostgreSQL documentation contains more information about shared memory configuration.
It turns out Postgres wouldn't start up because I had Wireshark (and X11) running. It worked fine after I quit Wireshark.
Good luck!
Solution 16 - Macos
I resolved this problem by
-
Identifying what was running on port 5432 by using "netstat" in the CL, which was postgreSQL not Postgres
-
I located the directory that contained postgreSQL, which was root/Library/PostgreSQL
-
I ensured an instants of the application wasn't running via Activity Monitor
-
Then I deleted the folder and rebooted! Everything was fine!
Solution 17 - Macos
Somehow I totally forgot that this socket file will be hidden because of the dot. Make sure you use ls -A /tmp/.s.PGSQL.5432
if you are checking to see if the socket is actually there.
Solution 18 - Macos
You most likely has a PostgreSQL installed, deleted it and installed it again. PostgreSQL typically used port 5432 but if not available, increases to the next available one, in this case 5433. So, you probably chose this port on your second install.
I think you should check file:
/etc/services
and adjust rows below for your expected port number:
postgresql 5432/udp # PostgreSQL Database
postgresql 5432/tcp # PostgreSQL Database
After this you should restart your computer (simplest way).
Solution 19 - Macos
I had the same issues:
psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?In my case it was a corrupt host file on my mac. I was missing:
127.0.0.1 localhostA quick easy way to check is to open terminal and type:
ping localhostor:
scutil -r localhostMore info here Hope it helps.
Solution 20 - Macos
Netstat, ps aux, etc ... none showed 5432 in use. Checked /Library. Found PG9.6 old install still there. Did rm -rf and bang. Version 11 works fine.
Solution 21 - Macos
I was losing my mind over this problem! i kept running
> lsof -i | grep 5432
and nothing was showing up! finally i ran it using sudo and a potgres client showed up. so if anyone else has tried the lsof and went nowhere, try it with sudo.
> sudo lsof -i | grep 5432
and then
> sudo kill
Solution 22 - Macos
The same problem just happened to me. I had Postgres.app 9.2.4.1 running since a while. When I updated Mac OS X to 10.8.5, after the mandatory reboot it was not working anymore. I tried several things, including updating to 9.2.4.3 and neither after another reboot it was working.
I had to open the file /Users/$USER/Library/Application Support/Postgres/var/postgresql.conf
and to:
- uncomment line
unix_socket_permissions = 0777
- uncomment and adapt line
unix_socket_directory = '/tmp'
After a restart, Postgres.app was running like a charm.
Solution 23 - Macos
A file named "postmaster.pid" (in my $PGDATA directory) were preventing postgresql to start. It was a zombie file, placed there 10 days ago and when I brutally shut down the computer (pulling the plug, literally), no clean up process had the opportunity to remove that file.
Solution 24 - Macos
beside all the helpful answers, you might also want to take a look at official page instructions : postgressapp.com/documentation/remove.html
Solution 25 - Macos
I had this same issue and mine was caused by some configuration issues I was having. Clearing the user configurations and reinstalling postgres in brew worked for me!
brew uninstall postgresql
rm -rf /usr/local/var/postgres
Solution 26 - Macos
For those using mac, this code worked for me like charm.
sudo pkill -u postgres