取得:
An error has occurred:
Error connecting to the server: fe_sendauth: no password supplied
database.yml
の設定は、他のマシンでのアプリのセットアップと同じです。
パスワードをハードコーディングする必要がないように設定するにはどうすればよいですか?
PgAdmin-IIIを使用してdb okを表示できます。
このアプリを使用する他のマシンが持っていない/必要としないので、database.yml
にパスワードを入れたくないので、私のPgインストールに関する何かのようです。
変更を変更する必要がありますpg_hba.conf
。これが私の例です:
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
trust
は、address
(この場合はlocalhost)の誰でもリストされたユーザー(またはこの場合は任意のユーザー)として接続できることを意味します。これは、重要でないデータを使用する開発構成にのみ適しています。 本番環境では使用しないでください。
@ rodrigo-zurekが注目されました。 _pg_hba.conf
_を変更する必要があります。 _pg_hba.conf
_はデフォルトでは別の場所にあるため、OSXユーザーにこの回答を追加したいだけです。
_Sudo su - postgres
vim /Library/PostgreSQL/<YOUR_VERSION>/data/pg_hba.conf
_
デフォルトでは、列METHOD
に_md5
_が含まれますが、それらすべてを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
_
次に、Applications/PostgreSQL 9.X内でpgAdmin IIIを開き、データベース(例:PostgreSQL 9.4 (localhost)
)を右クリックして、_Reload Configuration
_をクリックします。この後、_rake db:create
_ができました。
パスワードが提供されていないということは、パスワード認証を要求するように設定されており、パスワードが提供されていないことを意味します。 9.0のドキュメントは次のとおりです。 http://www.postgresql.org/docs/9.0/static/auth-methods.html
混乱を避けるために、9.1ではローカル認証が「ident」から「peer」に変更されたことに留意してください。 http://www.postgresql.org/docs/9.1/static/auth-methods.html の9.1ドキュメントを参照してください
また、これは最初の一致を制御する順序付けられたルールセットであることに注意してください。さらに、ローカルとローカルホストは異なります。ローカルはローカルUNIXドメインソケット接続用で、ホストlocalhostはローカルホストへのネットワーク接続用です。トラブルシューティングが必要なようですが、ドキュメントが役立つことを願っています。
#appveyor.yml
services: postgresql
test_script:
- SET PGUSER=postgres
- SET PGPASSWORD=Password12!
- PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%