¿Cómo hacer que psql tenga el valor predeterminado localhost?


10

Tengo el siguiente escenario:

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=# 

Estoy tratando de iniciar sesión en el postgresqlservidor instalado en mi sistema como usuario postgres. Solo puedo iniciar sesión si lo especifico -h localhost. Mientras que la psqldocumentación dice que:

Si omite el nombre de host, psql se conectará a través de un socket de dominio Unix a un servidor en el host local, o mediante TCP / IP a localhost en máquinas que no tienen sockets de dominio Unix.

Ref: http://www.postgresql.org/docs/current/static/app-psql.html#R2-APP-PSQL-CON

¿Por qué no puedo iniciar sesión sin especificar el host? ¿Hay algún archivo de configuración que necesite algún cambio para que las cosas ocurran como se indica en la psqldocumentación?


Cree un .psqlrcque especifique los valores predeterminados, o simplemente edite pg_hba.confpara usar la md5autenticación para localconexiones (socket de Unix). Consulte la documentación para pg_hba.confy psql.
Craig Ringer

Respuestas:


7

De hecho, funciona según lo documentado.

Cuando se omite el nombre de host, se psqlconecta al socket de dominio Unix cuya ruta se compila. Esa parte funciona en su caso; de lo contrario, generaría un mensaje de error diferente al que muestra la pregunta.

El mensaje de error en la pregunta:

psql: FATAL:  Ident authentication failed for user "postgres"

se relaciona con el hecho de que solo el usuario postgres de Unix tiene permiso para conectarse como el usuario postgres de la base de datos cuando usa un socket de dominio Unix. Esto se configura en el pg_hba.confarchivo.

lo que normalmente debe hacer en Ubuntu cuando inicia sesión como usuario normal, pero es el administrador del sistema:

$ sudo -u postgres psql

1
Gracias .. Por favor cambia sudo -u postgresql psqla sudo -u postgres psql. Traté de editar. Pero no pudo, ya que la edición solo tiene <6 caracteres.
saji89

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.