J'ai le scénario suivant:
saji@geeklap:~$ psql -U postgres
psql: FATAL: Ident authentication failed for user "postgres"
saji@geeklap:~$ psql -h localhost -U postgres
Password for user postgres:
psql (8.4.14)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.
postgres=#
J'essaie de me connecter au postgresql
serveur installé sur mon système en tant qu'utilisateur postgres
. Je ne peux me connecter que si je le précise -h localhost
. Alors que la psql
documentation dit que:
Si vous omettez le nom d'hôte, psql se connectera via un socket de domaine Unix à un serveur sur l'hôte local, ou via TCP / IP à localhost sur les machines qui n'ont pas de socket de domaine Unix.
Réf: http://www.postgresql.org/docs/current/static/app-psql.html#R2-APP-PSQL-CON
Pourquoi ne puis-je pas me connecter sans spécifier l'hôte, y a-t-il un fichier de configuration qui nécessite des modifications pour que les choses se produisent comme indiqué dans la psql
documentation?
postgresql
12.04
saji89
la source
la source
.psqlrc
qui spécifie les valeurs par défaut - ou modifiez simplementpg_hba.conf
pour utiliser l'md5
authentification pour leslocal
connexions (socket Unix). Voir la documentation depg_hba.conf
etpsql
.Réponses:
En fait, cela fonctionne comme documenté.
Lorsque le nom d'hôte est omis, se
psql
connecte au socket de domaine Unix dont le chemin est compilé. Cette partie fonctionne dans votre cas, sinon elle produirait un message d'erreur différent de ce que la question montre.Le message d'erreur dans la question:
est lié au fait que seul l'utilisateur postgres d'Unix a l'autorisation de se connecter en tant qu'utilisateur postgres de la base de données lors de l'utilisation d'un socket de domaine Unix. Ceci est configuré dans le
pg_hba.conf
fichier.ce que vous devez généralement faire dans Ubuntu lorsque vous êtes connecté en tant qu'utilisateur normal, mais que vous êtes l'administrateur du système:
la source
sudo -u postgresql psql
poursudo -u postgres psql
. J'ai essayé d'éditer. Mais cela n'a pas pu, car la modification ne contient que <6 caractères.Si vous n'aimez pas la connexion par défaut via un socket Unix, vous pouvez définir la variable d'environnement
PGHOST
. j'aidans mon
~/.bashrc
, pour se connecter au serveur avec ce nom. Quelques variables d'environnement plus pratiques sont documentées à http://www.postgresql.org/docs/9.5/static/libpq-envars.htmlla source