Come rendere psql predefinito a localhost?


10

Ho il seguente scenario:

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

Sto cercando di accedere al postgresqlserver installato nel mio sistema come utente postgres. Sono in grado di accedere solo se lo specifico -h localhost. Considerando che la psqldocumentazione dice che:

Se si omette il nome host, psql si connetterà tramite un socket di dominio Unix a un server sull'host locale o tramite TCP / IP a localhost su macchine che non dispongono di socket di dominio Unix.

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

Perché non riesco ad accedere senza specificare l'host, c'è qualche file di configurazione che ha bisogno di cambiamenti per far accadere le cose come indicato nella psqldocumentazione?


Crea un .psqlrcche specifica i valori predefiniti o modifica semplicemente pg_hba.confper utilizzare l' md5autenticazione per le connessioni local(socket unix). Vedere la documentazione per pg_hba.confe psql.
Craig Ringer,

Risposte:


7

In effetti, funziona come documentato.

Quando il nome host viene omesso, si psqlconnette al socket del dominio Unix il cui percorso è compilato. Quella parte funziona nel tuo caso, altrimenti genererebbe un messaggio di errore diverso da quello che mostra la domanda.

Il messaggio di errore nella domanda:

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

si riferisce al fatto che solo l'utente postgres di Unix è autorizzato a connettersi come l'utente postgres del database quando utilizza un socket di dominio Unix. Questo è configurato nel pg_hba.conffile.

cosa dovresti fare di solito in Ubuntu quando hai effettuato l'accesso come utente normale, ma sei l'amministratore del sistema:

$ sudo -u postgres psql

1
Grazie .. Per favore, cambia sudo -u postgresql psqlin sudo -u postgres psql. Ho provato a modificare. Ma non è possibile, poiché la modifica ha solo <6 caratteri.
saji89,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.