Die schnelle Lösung
Das Problem ist, dass es lokale peer
Authentifizierung basierend auszuführen versucht, auf Ihrem aktueller Benutzername Wenn Sie ein Passwort verwenden möchten, müssen Sie den Hostnamen mit -h
angeben.
pg_dump dbname -U username -h localhost -F c
Erklärung
Dies ist auf die folgenden in Ihrem pg_hba.conf
local all all peer
host all all 127.0.0.1/32 md5
Diese Postgres peer
Authentifizierung für lokale Benutzer zu verwenden, gibt an, welche die Postgres erfordert Ihr aktuelles System anzupassen Benutzername Nutzername. Die zweite Zeile bezieht sich auf Verbindungen, die einen Hostnamen verwenden und ermöglicht es Ihnen, sich mit einem Passwort über die Methode md5
zu authentifizieren.
Meine bevorzugte Entwicklung Config
HINWEIS: Dies sollte nur auf Einzelbenutzer-Workstations verwendet werden. Dies könnte zu einer größeren Sicherheitslücke auf einem Produktions- oder Multi-User-Rechner führen.
Bei der Entwicklung gegen eine lokale Postgres-Instanz möchte ich meine lokale Authentifizierungsmethode auf trust
ändern. Dies ermöglicht die Verbindung zu Postgres über einen lokalen Unix-Socket wie jeder Benutzer ohne Passwort. Es kann getan werden, indem einfach peer
oben zu trust
geändert wird und postgres neu geladen wird.
# Don't require a password for local connections
local all all trust
Die „... Peer-Authentifizierung ...“ Teil der Fehlermeldung bedeutet, dass es nicht [Passwort-Authentifizierung] ist mit (http://www.postgresql.org/docs/current/static/auth- methods.html # AUTH-PEER) überhaupt. –