Je viens d'installer PostgreSQL 9.4 sur Ubuntu 15.10.
- J'ai créé un utilisateur avec
createuser -P myuser
- J'ai créé une base de données avec
createdb -O myuser mydatabase
- J'ai édité
pg_hba.conf
et ajoutélocal mydatabase myuser md5
- J'ai redémarré PostgreSQL avec
sudo service postgresql restart
L'utilisateur myuser est un utilisateur PostgresSQL uniquement et n'a pas de compte utilisateur sur Ubuntu.
Lorsque j'essaie de me connecter à la base de données, psql -W mydatabase myuser
elle échoue avec psql: FATAL: Peer authentication failed for user "myuser"
.
PostgreSQL est en cours d'exécution…
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2016-03-03 09:53:00 CET; 9min ago
Process: 22219 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 22219 (code=exited, status=0/SUCCESS)
Mar 03 09:53:00 SERVER01 systemd[1]: Starting PostgreSQL RDBMS...
Mar 03 09:53:00 SERVER01 systemd[1]: Started PostgreSQL RDBMS.
... et écoute.
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:postgresql *:* LISTEN
tcp6 0 0 localhost:postgresql [::]:* LISTEN
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 151534 /var/run/postgresql/.s.PGSQL.5432
Que dois-je faire pour me connecter avec l'utilisateur myuser à la base de données mydatabase ?
Tout d'abord ... vérifiez que vous disposez des lignes autorisant l'utilisateur myuser dans pg_hba.conf. Par exemple:
Ou toute autre ligne d'autorisation pour IPV4 (et IPv6 si vous utilisez) avec: TYPE DATABASE USER ADDRESS METHOD
Après cette vérification, exécutez le psql comme suit:
Et puis, l'invite demandée, entrez le mot de passe de l'utilisateur myuser.
la source
'*'
et a ajouté lahost all all 0.0.0.0/0 md5
règle. N'a pas eu à supprimer l'authentification par les pairs. Je viens de travailler avec le-h localhost
param. Meilleure réponse, car vous n'avez probablement pas à toucher à la configuration lors d'une installation standard.