Il arrive souvent qu'il ne soit pas possible de se connecter correctement à PostgreSQL à cause de la sécurité. Voici la façon de résoudre cela .

Adaptez le chemin du fichier suivant votre version de PostgreSQL

modifiez le fichier /etc/postgresql/8.4/main/pg_hba.conf (8.4 est la version de PostgreSQL que vous avez)

Dans la section Database administrative login by UNIX sockets, à la fin du fichier, changez la méthode d'authentification afin d'utiliser md5. Explication des changements : tout le monde doit avoir un mot de passe pour se connecter sauf l'utilisateur postgres quand il est connecté sur la machine où PostgreSQL fonctionne.

Vous devriez avoir ceci (version < 9.0)

#
# Database administrative login by UNIX sockets
# ident pour version de postgresql < 9.0 par la suite cette option s'appele peer
local   all         postgres                          ident 
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

ou version > 8.4

#
# Database administrative login by UNIX sockets
# ident pour version de postgresql < 9.0 par la suite cette option s'appele peer
local   all         postgres                          peer 
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

Enregistrez ces modifications, fermez le fichier, puis, important, quittez l'éditeur. Redémarrez postgresql ; En console saississez en remplaçant, 8.4 par votre version de postgresql

sudo /etc/init.d/postgresql-8.4 restart