试图为ror app设置postgres,收到错误 – fe_sendauth:没有提供密码
获得:
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
。 只想为OSX用户添加这个答案,因为默认情况下pg_hba.conf
位于不同的位置。
sudo su - postgres vim /Library/PostgreSQL//data/pg_hba.conf
默认情况下,在METHOD
列中将使用md5
,但将所有信息替换为:
# 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
。
没有提供密码意味着您已将其设置为需要密码validation且未提供密码。 以下是9.0的文档: http : //www.postgresql.org/docs/9.0/static/auth-methods.html
请记住,9.1中的本地身份validation已从“ident”更改为“peer”以避免混淆。 请参阅http://www.postgresql.org/docs/9.1/static/auth-methods.html上的9.1文档
另请注意,这是一个带有第一个匹配控制的有序规则集。 此外,本地和本地主机是不同的。 Local用于本地UNIX域套接字连接,而host localhost用于到localhost的网络连接。 所以听起来你有一些故障排除要做,但希望文档应该有所帮助。
#appveyor.yml services: postgresql test_script: - SET PGUSER=postgres - SET PGPASSWORD=Password12! - PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%