connect to a DB using psycopg2 without password
Solution 1:
Surprisingly, the answer is to not specify a host at all. If you do this,
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mwt',
}
}
Then psycopg2 will connect using a Unix socket in the same manner as psql
. When you specify a HOST
, psycopg2 will connect with TCP/IP, which requires a password.
Solution 2:
To avoid using a password in Django settings.py
change md5
to trust
in this line of pg_hba.conf
:
host all all 127.0.0.1/32 trust
For a detailed understanding of the postgres security configurations read this doc.
To locate this file:
sudo -u postgres psql -c 'SHOW hba_file;'