2016-04-14 5 views
3

を供給されていない、私はrake db:migrate時にパスワードエラーに遭遇した -カピストラーノ、レール、PG :: ConnectionBad:fe_sendauth:パスワードは、私はUbuntuの14上のPostgresとレールのアプリのカピストラーノを実行しようとしている

DEBUG [2823f146] Command: cd /home/ben/apps/mll/releases/20160414014303 && (export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.0.0-p645" RAILS_ENV="production" ; $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate) 
DEBUG [2823f146] rake aborted! 
PG::ConnectionBad: fe_sendauth: no password supplied 

私は同様の記事にすべての解決策を試みたが運はなかった。キックのために、私はまた、リモートアプリケーションのディレクトリ内だけでそのコマンドを実行すると、次しまっみました:それは私のユーザ名としての私のデータベース名を使用しているため

PG::ConnectionBad: FATAL: password authentication failed for user "mll" 
FATAL: password authentication failed for user "mll" 

これは面白いです。私はmll役割を追加し、それの地獄のためになるよう、database.yml下記を参照してください、とLOだけrake db:migrateを実行しているとき、それは働いた見よ。私はこの新しい役でカピストラーノをやり直そうとしましたが、まだ運がありません。

は、ユーザ名が正しく保存/アクセスされていないことを合理的な推測ですか?私にそれをテストする方法はありますか? I手動ALTER ROLE ben WITH PASSWORD 'mypw';benmll役割、そして何の両方のために。

マイdatabase.ymlの:

defaults: &default 
    adapter: sqlite3 
    encoding: utf8 

development: 
    <<: *default 
    database: db/development.sqlite3 

test: 
    <<: *default 
    database: db/development.sqlite3_test 

production: 
    <<: *default 
    host: localhost 
    adapter: postgresql 
    encoding: utf8 
    database: mll 
    pool: 5 
    username: <%= ENV['DATABASE_USER'] %> 
    password: <%= ENV['DATABASE_PASSWORD'] %> 

\デュ:私はtrustmd5を変える読ん

       List of roles 
Role name |     Attributes     | Member of 
-----------+------------------------------------------------+----------- 
ben  | Superuser, Create role, Create DB    | {} 
mll  | Superuser, Create role, Create DB    | {} 
postgres | Superuser, Create role, Create DB, Replication | {} 

は何人かの人々を助け、私はそれを試してみましたが、私は再起動するかどうかはわからないよ、すべての私が見た命令は私のために働いていない。

にpg_hba.conf:

local all    postgres        peer 

# TYPE DATABASE  USER   ADDRESS     METHOD 
local all    all          peer 
host all    all    127.0.0.1/32   md5 
host all    all    ::1/128     md5 

答えて

3

あなたはpg_hba.confでlocalhostのための方法の下で、 "信頼" を使用する必要があります。これは、localhostからのすべての接続が任意のユーザーとしてログインできることを意味することに注意してください。開発用に使用している限り、これはおそらく問題ありません。働い `とたわごと、;

# "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 

pg_ctl reload

+0

であなたのpg_hba.confあなたが再起動することができますpostgresのを変更した後、私は最終的にはSQLを使用して再起動するためにそれを得た、間抜けのように感じる' pg_reload_confを()を選択します。ありがとう。 – Ben

+0

問題はありません。 –

+0

は何の生産については、私が上に読み取ることができる任意のリソース/トピックは、どのように私はこれを安全にすることができますし、この問題に遭遇していませんか? – Ben

関連する問題