2016-04-08 9 views
2

Ich möchte Postgresql für meine Schienen App in Cloud9 einrichten.postgresql Fehler in Cloud9 "fe_sendauth: kein Passwort angegeben"

Obwohl ich the top voted answer of this post folgte, erschien der folgende Fehler, als ich zu bundle exec rake db:create versuchte.

fe_sendauth: no password supplied 
... 
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "username"=>nil, "password"=>nil, "host"=>"0.0.0.0", "database"=>"app_development"} 
fe_sendauth: no password supplied 
... 
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "username"=>nil, "password"=>nil, "host"=>"0.0.0.0", "database"=>"app_test"} 

database.yml

default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 
    username: <%= ENV['USERNAME'] %> 
    password: <%= ENV['PASSWORD'] %> 
    host:  <%= ENV['IP'] %> 

development: 
    <<: *default 
    database: app_development 

test: 
    <<: *default 
    database: app_test 

production: 
    <<: *default 
    database: app_production 

Gemfile

gem 'pg', '~> 0.18.2' 

Obwohl ich ähnliche Fragen in Stackoverflow gefunden, die sie für mich nicht funktioniert.

Es wäre zu schätzen, wenn Sie mir geben könnten, wie man diesen Fehler vermeidet.

Cloud 9 kann uns nicht den Zugriff auf die pg_hba.conf Datei als this post genannten ermöglichen.

BEARBEITEN !!!

host: localhost anstelle von host: <%= ENV['IP'] %> in "database.yml"

sudo vim /etc/postgresql/9.3/main/pg_hba.conf

# "local" is for Unix domain socket connections only 
local all    xxx          peer 

hinzugefügt anstelle von

# "local" is for Unix domain socket connections only 
local all    username          peer 

Antwort

0

localhost als Gastgeber für eine TCP-Verbindung betrifft

so in Ihrem database.yml

host:  localhost 

und Sie verwenden denselben username und password für alle drei Umgebung dies auch überprüfen.

oder ENV['IP'] sollte localhost

überprüfen Sie Ihre Auth-Methode in pg_hba.conf beziehen werden es md5

# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 

und wenn

# "local" is for Unix domain socket connections only 
local all    username         peer 

dann würden Sie brauchen, um eine Verbindung über Unix sein sollte Domänensockets

Wenn Sie ein debian-ähnliches Betriebssystem verwenden, bedeutet dies /var/run/postgresql in das Host-Feld

so in der Datenbank zu setzen.yml

host: "/var/run/postgresql" 

Hoffe, dass es Ihr Problem

+0

Vielen Dank für Ihre schnelle Antwort lösen, @Rajarshi Das. 'Cloud 9' erlaubt uns nicht den Zugriff auf die' pg_hba.conf' Datei als [diesen Beitrag] (http://stackoverflow.com/questions/35329650/fe-sendauth-no-password-supplied-error-after -setting-up-postgresql-database-on) erwähnt. Es wäre schön, wenn Sie mir eine Idee geben könnten. – SamuraiBlue

+0

@SamuraiBlue Cloud9 beschränkt den Zugriff auf diese Datei nicht, das macht Linux. Sie können es mit 'sudo vim/etc/postgresql/9.3/main/pg_hba.conf' bearbeiten. –

+0

Vielen Dank für Ihren Kommentar, @Brady Dowling. Ich kann 'conf'-Datei nach Ihren Anweisungen speichern. Aber derselbe Fehler wird immer noch angezeigt. – SamuraiBlue