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