[Django]-Django.db.utils.OperationalError Could not connect to server

69πŸ‘

βœ…

It can be some issues:

  1. PostgreSQL is not running. Check it with sudo service postgresql status
  2. Your PostgresSQl is not running on port 5432. You can check it typing sudo netstat -nl | grep postgres

  3. You have something wrong trying to connect to your db like the username, the password or the databasename. Check that they are what postgres ask for you to connect it and that is the db_name that you want to access to.

  4. Problems with postmaster.pid in postgres. It can happen because of a shutdown unproperly done. It makes to remind a pid alive that doesn’t allow your server start. To fix it you have to:

     * rm /usr/local/var/postgres/postmaster.pid 
     * pg_resetxlog -f /usr/local/var/postgres
    

    After this it should run properly if you make the runserver of postgres

Help in Mac OSX: How to start PostgreSQL server on Mac OS X?

7πŸ‘

Try killing all postgres processes. Im on a MAC and this solution that I’ve found on ubuntus forum really works.

https://askubuntu.com/questions/547434/how-to-nicely-stop-all-postgres-processes
enter image description here

πŸ‘€Jcc.Sanabria

7πŸ‘

For Windows

Go to search bar and just write β€œOpen psql” and hit Enter.

Once screen is opened, rerun django project.

πŸ‘€Abdul Majeed

5πŸ‘

In my case, all was set up well and Postgres had the right port, PostgreSQL was running normally, but the 5432 port was being shared with phppgadmin, I could access the phppgadmin that gives me web access to Postgres database server, but my Django application was not working it would return Connection refused error. so I changed the port number on the phppgadmin config file (/etc/phppgadmin/config.inc.php) to 5433 from 5432 and all worked fine.

πŸ‘€Aldo Okware

4πŸ‘

In MacOS I stopped and restarted postgresql according to the advice given in this StackExchange answer:
https://dba.stackexchange.com/a/171580/182403

brew services stop postgresql
rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
brew services start postgresql
πŸ‘€Rick Westera

3πŸ‘

In project_folder/settings.py under DATABASE – HOST settings you should use local IP (127.0.0.1) not your public IP.

Correct

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'yourdb',
        'USER': 'youruser',
        'PASSWORD': 'yourpass',
        'HOST': '127.0.0.1',
        'PORT': '5432'
    }
}

Incorrect

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'yourdb',
        'USER': 'youruser',
        'PASSWORD': 'yourpass',
        'HOST': '188.252.196.234 ',
        'PORT': '5432'
    }
}
πŸ‘€Hrvoje

3πŸ‘

I had the same issue. This error occurs when an improper system shutdown has been done. I’m on an M1, and I’ve installed PostgreSQL via Homebrew.

I tried to start PostgreSQL after receiving an error identical to yours using brew services start postgresql, but I got this error:

Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/adithraghav/Library/LaunchAgents/homebrew.mxcl.postgresql.plist` exited with 5.

So, I tried to stop the running instance and start it again with brew services restart postgresql.

This line gave me the following output:

Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)

I checked the port on which PostgreSQL was running with sudo netstat -nl | grep postgres, but received no output.

So I deleted the existing postmaster.pid file with this:

rm /opt/homebrew/var/postgres/postmaster.pid 

NOTE: If you are not on an M1 Mac, you have to run rm /usr/local/var/postgres/postmaster.pid.

Then, I ran pg_resetwal -f /opt/homebrew/var/postgres to reset the write-ahead log. (NOTE: From Postgres 10 and onwards, pg_resetxlog has been renamed to pg_resetwal).

Now, python3 manage.py runserver works with no issues πŸ™‚

πŸ‘€Robo

2πŸ‘

The following command works for me (Windows)-

pg_ctl -D "C:\Program Files\PostgreSQL\11\data" restart

Then run server again-

python manage.py runserver
πŸ‘€Leena

2πŸ‘

Restarting the server solved the problem on my side.

2πŸ‘

In case you are seeing this error while using PostgresSQL from Google Cloud follow all configurations as mentioned in
https://cloud.google.com/python/django/flexible-environment#macos-64-bit

Also separate the HOST configuration as below

DATABASES[β€˜default’][β€˜HOST’] = β€˜/cloudsql/’
if os.getenv(β€˜GAE_INSTANCE’):
pass
else:
DATABASES[β€˜default’][β€˜HOST’] = β€˜127.0.0.1’

This helps in resolving this error.

πŸ‘€satvim

1πŸ‘

Go to aws instance -> security groups -> source -> inbound -> ::0

πŸ‘€Ankush Sahu

1πŸ‘

You might not connecting to the right database. If you are using Docker be sure you are using 5432 as port at the outside of the image.

eg:

db:
image: postgres:12.0-alpine
volumes:
– postgres_data:/var/lib/postgresql/data/
env_file:
– ./postgres/.env
ports:
– 5432:5432

πŸ‘€deland caglar

1πŸ‘

One problem that I found common with Django/Postgres (especially with Docker) is that your Django Web App maybe starting up before your Postgres server starts up. If the other solutions don’t work, try to restart your Django App after start up. With Docker, the command would be docker restart <web-app container name>

πŸ‘€Dejun Jackson

1πŸ‘

You have to enable listen addresses if you are using remote database.

cd /etc/postgresql/12.x/main/

open file named postgresql.conf

sudo nano postgresql.conf

add this line to that file

listen_addresses = '*'

then an open a 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

restart your server

sudo /etc/init.d/postgresql restart
πŸ‘€SAM

0πŸ‘

check if the port is in use. I fixed this stopping my postgre service in windows from services.msc

πŸ‘€Carlost

Leave a comment