得到:
An error has occurred:
Error connecting to the server: fe_sendauth: no password supplied
database.yml
中的设置与其他机器上的应用程序设置相同。
我该如何设置,以便不需要硬编码密码?
我可以使用 PgAdmin-III 查看数据库。
我宁愿不在 database.yml
中包含密码,因为使用此应用程序的其他机器不需要它,所以这似乎与我的 Pg 安装有关。
得到:
An error has occurred:
Error connecting to the server: fe_sendauth: no password supplied
database.yml
中的设置与其他机器上的应用程序设置相同。
我该如何设置,以便不需要硬编码密码?
我可以使用 PgAdmin-III 查看数据库。
我宁愿不在 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
上的任何人(在这种情况下为本地主机)都可以作为所列出的用户连接(或者在这种情况下是他们选择的任何用户)。这只适用于带有不重要数据的开发配置。 不要在生产环境中使用此功能。
pg_hba.conf
文件吗?在 psql 中尝试运行 SHOW hba_file;
查找 pg_hba.conf
文件。还要检查 PostgreSQL 服务器日志。 - Craig Ringersudo -u postgres -i
psql
SELECT pg_reload_conf();
来完成操作。并且我使用SHOW hba_file;
命令在psql中找到了pg_hba.conf
文件。 - Juan José Ramírez@rodrigo-zurek说得很对,你需要更改pg_hba.conf
。我想为OSX用户添加这个答案,因为pg_hba.conf
在默认情况下位于不同的位置。
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
命令了。
pg_hba.conf
并保存?我是 Mac 的新手。 - S.Perera#appveyor.yml
services: postgresql
test_script:
- SET PGUSER=postgres
- SET PGPASSWORD=Password12!
- PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%
未提供密码意味着您已设置它需要密码验证,但未提供密码。这是 9.0 的文档:http://www.postgresql.org/docs/9.0/static/auth-methods.html
请记住,为了避免混淆,本地身份验证从 9.1 中的“ident”更改为“peer”。请参阅 9.1 文档:http://www.postgresql.org/docs/9.1/static/auth-methods.html
还请注意,这是有序规则集,第一匹配优先。此外,local 和 localhost 是不同的。Local 用于本地 UNIX 域套接字连接,而 host localhost 则用于到本地主机的网络连接。因此,看起来您需要一些故障排除工作,但希望文档能够帮助您。
pg_hba.conf
文件,看看是否为其他数据库添加了任何ident
或trust
规则;并将其与此进行比较。 - Craig Ringer