Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?

Ruby on-RailsRubyPostgresqlRuby on-Rails-3Ruby on-Rails-4

Ruby on-Rails Problem Overview


Before anything, please note that I have found several similar questions on Stack Overflow and articles all over the web, but none of those helped me fix my issue:

Now, here is the issue:

  • I have a Rails app that works like a charm.
  • With my collaborator, we use GitHub to work together.
  • We have a master and an mvp branches.
  • I recently updated my git version with Homebrew (Mac).
  • We use Foreman to start our app locally.

Now, when I try to launch the app locally, I get the following error:

PG::ConnectionBad at /
could not connect to server: Connection refused
	Is the server running on host "localhost" (::1) and accepting
	TCP/IP connections on port 5432?
could not connect to server: Connection refused
	Is the server running on host "localhost" (127.0.0.1) and accepting
	TCP/IP connections on port 5432?

I tried to reboot my computers several times.

I also checked the content of /usr/local/var/postgres:

PG_VERSION		pg_dynshmem		pg_multixact	pg_snapshots	pg_tblspc		postgresql.conf
base			pg_hba.conf		pg_notify		pg_stat			pg_twophase		postmaster.opts
global			pg_ident.conf	pg_replslot		pg_stat_tmp		pg_xlog			server.log
pg_clog			pg_logical		pg_serial		pg_subtrans		postgresql.auto.conf

As you can see, there is no postmaster.pid file in there.

Any idea how I could fix this?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

run postgres -D /usr/local/var/postgres and you should see something like:

 FATAL:  lock file "postmaster.pid" already exists
 HINT:   Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?

Then run kill -9 PID in HINT

And you should be good to go.

Solution 2 - Ruby on-Rails

You most likely ran out of battery and your postgresql server didn't shutdown correctly.

The easiest workaround is to download the official postgresql app and launch it: it will force the server to start (http://postgresapp.com/)

Solution 3 - Ruby on-Rails

Most likely it's because your system shutdown unexpectedly

Try

postgres -D /usr/local/var/postgres

You might see

> FATAL: lock file "postmaster.pid" already exists > HINT: Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"?

Then try

kill -9 PID

example

kill -9 419

And it should start postgres normally

Solution 4 - Ruby on-Rails

The postgresql server might be down and the solution might be as simple as running:

sudo service postgresql start

which fixed the issue for me.

Solution 5 - Ruby on-Rails

This could be caused by the pid file created for postgres which has not been deleted due to unexpected shutdown. To fix this, remove this pid file.

  1. Find the postgres data directory. On a MAC using homebrew it is /usr/local/var/postgres/, other systems it might be /usr/var/postgres/

  2. Remove pid file by running:

    rm postmaster.pid
    
  3. Restart postgress. On Mac, run:

    brew services restart postgresql
    

Solution 6 - Ruby on-Rails

I had almost just as same error with my Ruby on Rails application running postgresql(mac). This worked for me:

brew services restart postgresql

Solution 7 - Ruby on-Rails

This worked in my case:

brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql

Solution 8 - Ruby on-Rails

I resolved the issue via this command

pg_ctl -D /usr/local/var/postgres start

At times, you might get this error

pg_ctl: another server might be running; trying to start server anyway

So, try running the following command and then run the first command given above.

pg_ctl -D /usr/local/var/postgres stop

Solution 9 - Ruby on-Rails

Step 1:

cd /etc/postgresql/12/main/

open file named postgresql.conf

sudo nano postgresql.conf

add this line to that file

listen_addresses = '*'

then open file named pg_hba.conf

sudo nano pg_hba.conf

and add this line to that file

host  all  all 0.0.0.0/0 md5

It allows access to all databases for all users with an encrypted password

restart your server

sudo /etc/init.d/postgresql restart

Solution 10 - Ruby on-Rails

  1. Find postgresql@10 service directory
  $ ls /usr/local/var/postgresql@10

enter image description here

  1. Find file postmaster.pid and delete that file
  $ rm -f postmaster.pid
  1. Restart postgres service using
  $ brew services restart postgresql@10

Solution 11 - Ruby on-Rails

In my case PostgreSQL updates from version 13.4 to 14 in background, so it fixes by:

brew postgresql-upgrade-database

In other case the problem fixed by:

rm -rf /usr/local/var/postgres/postmaster.pid

Restart service postgresql:

brew services restart postgresql

How can you understand what is the problem?

For first see what service is not correct started:

brew services list

For second show file postgres.log, where will be the error:

tail -f /usr/local/var/log/postgres.log

And so find answer by this error's text

Solution 12 - Ruby on-Rails

This worked for me: run

sudo lsof -i :<port_number>

after that it will display the PID which is currently attached to the process.

After that run sudo kill -9 <PID>

if that doesn't work, try the solution offered by user8376606 it would definitely work!

Solution 13 - Ruby on-Rails

If you want to restart Postgresql on Linux, then you have to use the following command.

/etc/init.d/postgresql restart

Solution 14 - Ruby on-Rails

This is how I solved my problem:

see the status of services

brew services list

and the output was :

Name       Status  User Plist
postgresql error   myuser /Users/myuser/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
unbound    stopped 

I change the file name in this path, you can also remove it

mv /Users/myuser/Library/LaunchAgents/homebrew.mxcl.postgresql.plist /Users/myuser/Library/LaunchAgents/homebrew.mxcl.postgresql.plist_temp

and then reboot the os

sudo reboot

after booting I started the postgresql and it worked.

brew services start postgresql

Solution 15 - Ruby on-Rails

First I tried

> lsof -wni tcp:5432 but it doesn't show any PID number.

Second I tried > Postgres -D /usr/local/var/postgres and it showed that server is listening.

So I just restarted my mac to restore all ports back and it worked for me.

Solution 16 - Ruby on-Rails

For Docker users: In my case it was caused by excessive docker image size. You can remove unused data using prune command:

docker system prune --all --force --volumes

Warning: as per manual (docker system prune --help):

>This will remove:

> - all stopped containers

  • all networks not used by at least one container
  • all dangling images
  • all dangling build cache

Solution 17 - Ruby on-Rails

In my case

  1. I have changed the port in postgresql.conf file
  2. and restart postgresql services in

Run => service.msc => Restart

  1. now retry

Solution 18 - Ruby on-Rails

I encountered a similar problem when I was trying to connect my Django application to PostgreSQL database.

I wrote my Dockerfile with instructions to setup the Django project followed by instructions to install PostgreSQL and run Django server in my docker-compose.yml.

I defined two services in my docker-compose-yml.

services:
  postgres:
    image: "postgres:latest"
    environment:
      - POSTGRES_DB=abc
      - POSTGRES_USER=abc
      - POSTGRES_PASSWORD=abc
    volumes:
      - pg_data:/var/lib/postgresql/data/
  django:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8004
    volumes:
      - .:/app
    ports:
      - 8004:8004
    depends_on:
      - postgres 

Unfortunately whenever I used to run docker-compose up then same err. used to pop up.

And this is how my database was defined in Django settings.py.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'abc',
        'USER': 'abc',
        'PASSWORD': 'abc',
        'HOST': '127.0.0.1',
        'PORT': '5432',
        'OPTIONS': {
            'client_encoding': 'UTF8',
        },
    }
} 

So, In the end I made use of docker-compose networking which means if I change the host of my database to postgres which is defined as a service in docker-compose.yml will do the wonders.

So, Replacing 'HOST': '127.0.0.1' => 'HOST': 'postgres' did wonders for me.

After replacement this is how your Database config in settings.py will look like.

DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'abc',
            'USER': 'abc',
            'PASSWORD': 'abc',
            'HOST': 'postgres',
            'PORT': '5432',
            'OPTIONS': {
                'client_encoding': 'UTF8',
            },
        }
    } 

Solution 19 - Ruby on-Rails

I often encounter this problem on windows,the way I solved the problem is Service - Click PostgreSQL Database Server 8.3 - Click the second tab "log in" - choose the first line "the local system account".

Solution 20 - Ruby on-Rails

It also gives the same error if you just stop your PostgreSQL app. You just need to start it again. (PostgreSQL 11)

Solution 21 - Ruby on-Rails

I have faced the same issue and I was unable to start the postgresql server and was unable to access my db even after giving password, and I have been doing all the possible ways.

This solution worked for me,

For the Ubuntu users: Through command line, type the following commands:

1.service --status-all (which gives list of all services and their status. where "+" refers to running and "-" refers that the service is no longer running)

check for postgresql status, if its "-" then type the following command

2.systemctl start postgresql (starts the server again)

refresh the postgresql page in browser, and it works

For the Windows users:

Search for services, where we can see list of services and the right click on postgresql, click on start and server works perfectly fine.

Solution 22 - Ruby on-Rails

In my case I forgot to change the database from postgres (on my production) back to sqlite3 which I was using for development.

Solution 23 - Ruby on-Rails

It's working for me >>Node.Js App

user@MacBook-Pro % sudo lsof -i :5430

Output

COMMAND PID user FD TYPE DEVICE SIZE/OFF NODE NAME

node 7885 user 21u IPv6 0x2e7d89f6118f95b9 0t0 TCP *:radec-corp (LISTEN)

Kill the PID

user@MacBook-Pro % sudo kill -9 7885

One more test

user@MacBook-Pro % sudo lsof -i :5430

user@MacBook-Pro % "No more running PID for the port 5430"

Solution 24 - Ruby on-Rails

In my case, on a Ruby on Rails project, I removed a .pid file from the folder tmp/pids and restart the system.

Solution 25 - Ruby on-Rails

Had the same issue. I checked that my database.yml file, (dev mode) host was pointing to 5433. I updated it to 5432 and it worked.

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
QuestionThibaud ClementView Question on Stackoverflow
Solution 1 - Ruby on-Railsuser8376606View Answer on Stackoverflow
Solution 2 - Ruby on-RailsGraham SlickView Answer on Stackoverflow
Solution 3 - Ruby on-RailsNishantView Answer on Stackoverflow
Solution 4 - Ruby on-RailsShiva89View Answer on Stackoverflow
Solution 5 - Ruby on-RailsAman KumarView Answer on Stackoverflow
Solution 6 - Ruby on-RailsTalha MehView Answer on Stackoverflow
Solution 7 - Ruby on-RailsTan NguyenView Answer on Stackoverflow
Solution 8 - Ruby on-RailstechdreamsView Answer on Stackoverflow
Solution 9 - Ruby on-RailsMuhammad Usama RabaniView Answer on Stackoverflow
Solution 10 - Ruby on-RailsMd Mehedi HasanView Answer on Stackoverflow
Solution 11 - Ruby on-RailsshilovkView Answer on Stackoverflow
Solution 12 - Ruby on-RailsvonvickView Answer on Stackoverflow
Solution 13 - Ruby on-RailsranvirView Answer on Stackoverflow
Solution 14 - Ruby on-RailsHamid ShojaView Answer on Stackoverflow
Solution 15 - Ruby on-RailsSaif chaudhryView Answer on Stackoverflow
Solution 16 - Ruby on-RailsTomasz BartkowiakView Answer on Stackoverflow
Solution 17 - Ruby on-RailsNiranjanView Answer on Stackoverflow
Solution 18 - Ruby on-RailsDivyanshu RawatView Answer on Stackoverflow
Solution 19 - Ruby on-Rails管浩浩View Answer on Stackoverflow
Solution 20 - Ruby on-RailssoguView Answer on Stackoverflow
Solution 21 - Ruby on-RailsUsha SravaniView Answer on Stackoverflow
Solution 22 - Ruby on-RailsalkadelikView Answer on Stackoverflow
Solution 23 - Ruby on-RailsAbu Sayem Md HabibullahView Answer on Stackoverflow
Solution 24 - Ruby on-RailsHamid ShojaView Answer on Stackoverflow
Solution 25 - Ruby on-RailsArvind singhView Answer on Stackoverflow