获得:
An error has occurred:
Error connecting to the server: fe_sendauth: no password supplied
database.yml
中的设置与其他计算机上的应用设置相同。
如何设置以便我不需要硬编码的密码?
我可以使用PgAdmin-III查看db ok。
我宁愿没有database.yml
中的密码,因为使用此应用程序的其他计算机没有/需要它,所以看起来很可能是我的Pg安装。
答案 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%