试图为ror app设置postgres,收到错误 - fe_sendauth:没有提供密码

时间:2012-09-17 01:09:36

标签: ruby-on-rails ruby postgresql passwords pg

获得:

An error has occurred:

Error connecting to the server: fe_sendauth: no password supplied

database.yml中的设置与其他计算机上的应用设置相同。

如何设置以便我不需要硬编码的密码?

我可以使用PgAdmin-III查看db ok。

我宁愿没有database.yml中的密码,因为使用此应用程序的其他计算机没有/需要它,所以看起来很可能是我的Pg安装。

4 个答案:

答案 0 :(得分:62)

您需要更改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)都可以作为列出的用户(或者在这种情况下是他们选择的任何用户)进行连接。这实际上仅适用于具有不重要数据的开发配置。 请勿在制作中使用

答案 1 :(得分:10)

@ rodrigo-zurek当场亮相;你必须改变pg_hba.conf。只想为OSX用户添加此答案,因为默认情况下pg_hba.conf位于不同的位置。

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

md5列中的默认值为METHOD,但会将所有trust替换为<{1}}:

# 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

答案 2 :(得分:0)

未提供密码表示您已将其设置为需要密码验证且未提供密码。以下是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文档

另请注意,这是一个带有第一个匹配控制的有序规则集。此外,本地和本地主机是不同的。 Local用于本地UNIX域套接字连接,而host localhost用于到localhost的网络连接。所以听起来你需要做一些故障排除,但希望文档应该有所帮助。

答案 3 :(得分:0)

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