it-swarm.com.de

Beim Versuch, Postgres für die ror-App einzurichten, wird folgende Fehlermeldung angezeigt: fe_sendauth: Kein Kennwort angegeben

Bekommen:

An error has occurred:

Error connecting to the server: fe_sendauth: no password supplied

Die Einstellungen in database.yml sind mit den App-Einstellungen auf anderen Computern identisch.

Wie kann ich die Einstellungen so einrichten, dass ich kein Kennwort in fester Codierung benötige?

Ich kann die Datenbank in Ordnung mit PgAdmin-III anzeigen.

Ich hätte das Passwort lieber nicht in database.yml, da andere Computer, die diese App verwenden, es nicht haben/brauchen, daher scheint es etwas mit meiner Pg-Installation zu tun zu haben.

26
Michael Durrant

Sie müssen Ihren pg_hba.conf ändern. Hier ist ein Beispiel von mir:

pg_hba.conf:

TYPE  DATABASE        USER            ADDRESS                 METHOD

Host    all             all             127.0.0.1/32            trust

Host    all             PC             127.0.0.1/32            trust

Host    all             all             ::1/128                 trust

Beachten Sie, dass trust bedeutet, dass sich jeder Benutzer von address (in diesem Fall localhost) als aufgelisteter Benutzer (oder in diesem Fall jeder Benutzer seiner Wahl) verbinden kann. Dies ist wirklich nur für Entwicklungskonfigurationen mit unwichtigen Daten geeignet. Verwenden Sie dies nicht in der Produktion .

62
Rodrigo Zurek

@ rodrigo-zurek war genau richtig; Sie müssen den pg_hba.conf ändern. Diese Antwort sollte nur für OSX-Benutzer hinzugefügt werden, da sich pg_hba.conf standardmäßig an einer anderen Stelle befindet.

Sudo su - postgres
vim /Library/PostgreSQL/<YOUR_VERSION>/data/pg_hba.conf

Der Standardwert lautet md5 in der Spalte METHOD, ersetzt jedoch alle durch trust:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
Host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
Host    all             all             ::1/128                 trust

Öffnen Sie dann pgAdmin III in Applications/PostgreSQL 9.X, klicken Sie mit der rechten Maustaste auf die Datenbank (z. B. PostgreSQL 9.4 (localhost)) und klicken Sie auf Reload Configuration. Danach konnte ich rake db:create.

10
Jack

Wenn kein Kennwort angegeben wurde, bedeutet dies, dass Sie die Kennwortauthentifizierung verlangt haben und kein Kennwort angegeben wird. Hier ist Dokumentation für 9.0: http://www.postgresql.org/docs/9.0/static/auth-methods.html

Beachten Sie, dass local auth in 9.1 von "ident" in "peer" geändert wurde, um Verwirrung zu vermeiden. Siehe die 9.1-Dokumente unter http://www.postgresql.org/docs/9.1/static/auth-methods.html

Denken Sie auch daran, dass dies ein geordneter Regelsatz ist, der die erste Übereinstimmung regelt. Außerdem unterscheiden sich local und localhost. Local ist für lokale UNIX-Domänensockelverbindungen, während Host localhost für Netzwerkverbindungen zu localhost gilt. Es klingt also so, als hätten Sie einige Fehlerbehebungsaufgaben, die hoffentlich helfen sollten.

0
Chris Travers
#appveyor.yml
services: postgresql
test_script:
  - SET PGUSER=postgres
  - SET PGPASSWORD=Password12!
  - PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%
0
Alexey Strizhak