fe_sendauth: kein Passwort angegeben

74

database.yml:

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: postgresql
  encoding: utf8
  database: sampleapp_dev  #can be anything unique
  #host: localhost
  #username: 7stud
  #password: 

  #adapter: sqlite3
  #database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: postgresql
  encoding: utf8
  database: sampleapp_test  #can be anything unique
  #host: localhost
  #username: 7stud
  #password: 
  #adapter: sqlite3
  #database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: sampleapp_prod   #can be anything unique
  #host: localhost
  #username: 7stud
  #password: 
  #adapter: sqlite3
  #database: db/production.sqlite3
  pool: 5
  timeout: 5000

pg_hba.conf:

# 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
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                md5
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

Ich habe die METHODE in den ersten drei Zeilen von md5 in trust geändert, aber ich erhalte immer noch den Fehler.

Und egal welche Kombinationen von Dingen ich in database.yml versuche, wenn ich es tue:

~/rails_projects/sample_app4_0$ bundle exec rake db:create:all

Ich bekomme immer den Fehler:

fe_sendauth: kein Passwort angegeben

Ich habe dieses Tutorial befolgt, um die Dinge einzurichten:

https://pragtob.wordpress.com/2012/09/12/setting-up-postgresql-for-ruby-on-rails-on-linux

Mac OSX 10.6.8
PostgreSQL 9.2.4 installed via enterpriseDB installer
Install dir: /Library/PostgreSQL/9.2
7stud
quelle
1
Und Sie haben Ihre Datei pg_hba.conf neu geladen, nachdem Sie Änderungen vorgenommen haben?
BMA
@bma, wie lädst du es neu? Die einzige Möglichkeit, eine Verbindung zum Server herzustellen, ist die Verwendung von pgAdmin3 (im Verzeichnis 9.2). Ich wähle den Server aus, klicke mit der rechten Maustaste und wähle dann Verbinden. Bei dem Versuch, die conf-Datei neu zu laden, habe ich in pgAdmin3 die Verbindung zum Server getrennt und dann die Verbindung wiederhergestellt.
7stud
3
Sie können eine Abfrage ausgeben: select pg_reload_conf()Als Superuser oder in pgadmin können Sie mit der rechten Maustaste auf den Datenbanknamen klicken und dann auf "Konfiguration neu laden" klicken (ich denke, das ist, was ich tue, ich verwende pgadmin nicht)
bma
@bma ,! $ # @%! $ ^%! Das hat funktioniert. Können Sie Ihre Kommentare in eine Antwort einfügen?
7stud
1
Ich hatte das gleiche Problem. Ich habe es gelöst, Benutzername: postgres und Passwort: in meine database.yml
Danilo Cândido

Antworten:

66

Nachdem Sie Änderungen an den Dateien pg_hba.confoder vorgenommen haben postgresql.conf, muss der Cluster neu geladen werden, um die Änderungen zu übernehmen.

Über die Befehlszeile: pg_ctl reload

Aus einer Datenbank heraus (als Superuser): select pg_reload_conf();

Wählen Sie in PGAdmin: Klicken Sie mit der rechten Maustaste auf Datenbankname und wählen Sie "Konfiguration neu laden".

Hinweis: Das Neuladen reicht nicht für Änderungen wie das Aktivieren der Archivierung, das Ändern shared_buffersusw. aus. Diese erfordern einen Neustart des Clusters.

bma
quelle
2
Ich habe eine Folgefrage: Soweit ich weiß, habe ich nie einen Server gestartet. Das einzige, was ich getan habe, war die Installation von postgress mit einem Mac OSX-Installationsprogramm. Dann habe ich stundenlang versucht, herauszufinden, wie man Postgres ohne Glück benutzt. Ich habe gerade pgAdmin3 im Verzeichnis /Library/PostgreSQL/9.2 entdeckt, also habe ich darauf geklickt. Wie hat der Server gestartet? Und muss ich damit aufhören?
7stud
3
Es begann wahrscheinlich nach Abschluss der Installation durch das Installationsprogramm (die meisten Installationsprogramme / Pakete, die ich gesehen habe, tun dies)
bma
1
Muss ich damit aufhören? Wie kann ich das machen? Ich mag das Installationsprogramm nicht, weil ich es gewohnt bin, die Befehlszeile zu verwenden.
7stud
1
Hör auf was? Der Datenbankcluster oder das Installationsprogramm? In letzterem Fall habe ich keine Ahnung, warum ein Installationsprogramm noch ausgeführt wird.
BMA
4
Der Server ... aber ich habe es herausgefunden. Ich habe alle Schritte aufgeschrieben, die ich durchlaufen habe, um Postgres dazu zu bringen, mit Schienen zu arbeiten: stackoverflow.com/questions/17971101/…
7stud
2

Ich habe gerade ein --passwordFlag in meinen Befehl eingegeben und nach dem Drücken der Eingabetaste nach dem Passwort gefragt, das ich angegeben habe.

Parsecer
quelle
1
Hat super für mich funktioniert, habe das am Ende des Befehls hinzugefügt und die Eingabetaste gedrückt!
Ruohola
0

Dies tritt auf, wenn das Kennwort für die Datenbank nicht angegeben ist.

default="postgres://postgres:[email protected]:5432/DBname"

Aishwarya kabadi
quelle