得到:
An error has occurred:
Error connecting to the server: fe_sendauth: no password supplied
中的设置database.yml
与其他机器上的应用程序设置相同。
如何进行设置,以便我不需要硬编码密码?
我可以使用 PgAdmin-III 查看 db ok。
我宁愿没有密码,database.yml
因为使用此应用程序的其他机器没有/不需要它,所以这似乎与我的 Pg 安装有关。
得到:
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/<YOUR_VERSION>/data/pg_hba.conf
默认值将md5
在列METHOD
中,但将所有这些替换为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 文档
还要记住,这是一个有序的规则集,具有第一次匹配管理。此外,本地和本地主机是不同的。Local 用于本地 UNIX 域套接字连接,而主机 localhost 用于到 localhost 的网络连接。因此,听起来您需要进行一些故障排除,但希望文档可以提供帮助。
#appveyor.yml
services: postgresql
test_script:
- SET PGUSER=postgres
- SET PGPASSWORD=Password12!
- PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%