-
find the file
pg_hba.conf
– it may be located, for example in/etc/postgresql-9.1/pg_hba.conf
.cd /etc/postgresql-9.1/
-
Back it up
cp pg_hba.conf pg_hba.conf-backup
-
place the following line (as either the first un-commented line, or as the only one):
For all occurrence of below (local and host) , except replication
section if you don’t have any it has to be changed as follow ,no MD5
or Peer authentication should be present.
local all all trust
-
restart your PostgreSQL server (e.g., on Linux:)
sudo /etc/init.d/postgresql restart
If the service (daemon) doesn’t start reporting in log file:
local connections are not supported by this build
you should change
local all all trust
to
host all all 127.0.0.1/32 trust
-
you can now connect as any user. Connect as the superuser
postgres
(note, the superuser name may be different in your installation. In some systems it is calledpgsql
, for example.)psql -U postgres
or
psql -h 127.0.0.1 -U postgres
(note that with the first command you will not always be connected with local host)
-
Reset password (‘replace my_user_name with postgres since you are resetting postgres user)
ALTER USER my_user_name with password 'my_secure_password';
-
Restore the old
pg_hba.conf
as it is very dangerous to keep aroundcp pg_hba.conf-backup pg_hba.conf
-
restart the server, in order to run with the safe
pg_hba.conf
sudo /etc/init.d/postgresql restart
Further Reading about that pg_hba file: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html