La soluzione rapida
il problema è che si sta cercando di eseguire l'autenticazione locale peer
, sulla base di nome utente corrente. Se si desidera utilizzare una password, è necessario specificare il nome host con -h
.
pg_dump dbname -U username -h localhost -F c
Spiegazione
questo è dovuto al seguente nella vostra pg_hba.conf
local all all peer
host all all 127.0.0.1/32 md5
Questo dice Postgres utilizzare peer
autenticazione per gli utenti locali che richiede la Postgres nome utente per abbinare il vostro sistema attuale nome utente. La seconda riga fa riferimento alle connessioni che utilizzano un nome host e consente di autenticare con una password tramite il metodo md5
.
La mia preferita Sviluppo Config
NOTA: questo deve essere utilizzato solo sulle workstation singolo utente. Ciò potrebbe portare a una vulnerabilità di sicurezza maggiore su una macchina di produzione o multiutente.
Durante lo sviluppo su un'istanza Postgres locale, mi piace modificare il metodo di autenticazione locale su trust
. Ciò consentirà la connessione a postgres tramite un socket unix locale come qualsiasi utente senza password. Può essere fatto semplicemente cambiando peer
sopra a trust
e ricaricando postgres.
# Don't require a password for local connections
local all all trust
fonte
2012-05-03 19:34:17
che "... l'autenticazione peer ..." parte del messaggio di errore significa che non sta usando [autenticazione con password] (http://www.postgresql.org/docs/current/static/auth- methods.html # AUTH-PEER). –