Postgres.app Could not start on port 5432

MacosPostgresql

Macos 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:

  1. Make sure postgres.app is not running.
  2. Run rm ~/Library/Application\ Support/Postgres/var-9.$X/postmaster.pid
  3. If you don't have a var-9.$X directory, just run rm ~/Library/Application\ Support/Postgres/postmaster.pid
  4. Restart postgres.app
  5. 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

  1. Identifying what was running on port 5432 by using "netstat" in the CL, which was postgreSQL not Postgres

  2. I located the directory that contained postgreSQL, which was root/Library/PostgreSQL

  3. I ensured an instants of the application wasn't running via Activity Monitor

  4. 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	localhost
A quick easy way to check is to open terminal and type:
ping localhost
or:
scutil -r localhost
More 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:

  1. uncomment line unix_socket_permissions = 0777
  2. 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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionChrisView Question on Stackoverflow
Solution 1 - MacosMax von HippelView Answer on Stackoverflow
Solution 2 - MacosНектоView Answer on Stackoverflow
Solution 3 - MacosJamon HolmgrenView Answer on Stackoverflow
Solution 4 - MacoseezisView Answer on Stackoverflow
Solution 5 - MacosPaul McLachlanView Answer on Stackoverflow
Solution 6 - MacosDaniel BonnellView Answer on Stackoverflow
Solution 7 - MacosAaron BeckerView Answer on Stackoverflow
Solution 8 - MacosUtsav PreetView Answer on Stackoverflow
Solution 9 - MacosksnabbView Answer on Stackoverflow
Solution 10 - MacosDavid ShiView Answer on Stackoverflow
Solution 11 - MacosLomefinView Answer on Stackoverflow
Solution 12 - MacosAdjunctProfessorFalconView Answer on Stackoverflow
Solution 13 - MacosCraig RingerView Answer on Stackoverflow
Solution 14 - Macosandr3wllView Answer on Stackoverflow
Solution 15 - MacosColinView Answer on Stackoverflow
Solution 16 - MacosVishal SakariaView Answer on Stackoverflow
Solution 17 - MacosDavid WinieckiView Answer on Stackoverflow
Solution 18 - MacosSabin ChirilaView Answer on Stackoverflow
Solution 19 - MacosKris UtterView Answer on Stackoverflow
Solution 20 - MacosDaniel GolembiewskiView Answer on Stackoverflow
Solution 21 - MacosSaee SaadatView Answer on Stackoverflow
Solution 22 - MacosRmattView Answer on Stackoverflow
Solution 23 - MacosYanik CrépeauView Answer on Stackoverflow
Solution 24 - Macosnarcis dprView Answer on Stackoverflow
Solution 25 - MacosRharris389View Answer on Stackoverflow
Solution 26 - MacosBillions.A.JoelView Answer on Stackoverflow