gpt4 book ai didi

ruby-on-rails - PG::ConnectionBad: fe_sendauth: 没有提供密码

转载 作者:行者123 更新时间:2023-11-29 11:06:17 24 4
gpt4 key购买 nike

当我尝试在本地 postgres 数据库上运行“rake 测试”时,它会抛出上述异常。

这是我的 pg_hba.conf 文件: # 通过 Unix 域套接字进行数据库管理登录 本地所有 postgres 同行

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all username peer
local myapp_dev myapp md5
local myapp_test myapp md5
local myapp_prod myapp md5
#local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5

这是我的 database.yml 中的相关部分

test:

adapter: postgresql
database: myapp_test
pool: 5
timeout: 5000
host: localhost
username: username
password:

在真实的 database.yml 中,“用户名”被替换为我登录时使用的实际用户名。由于身份验证方法定义为“对等”,因此不需要密码。

我也注意重启了 Postgres

sudo -u postgres pg_ctlcluster 9.3 main restart

我还缺少什么?

最佳答案

localhost 作为主机指的是 TCP 连接,这意味着根据您的 pg_hba.conf,身份验证方法是 md5(需要密码) :

# IPv4 local connections:host    all             all             127.0.0.1/32            md5# IPv6 local connections:host    all             all             ::1/128                 md5

要采用 peer 方法,您需要通过 Unix 域套接字进行连接,并且由于您似乎使用的是类似 debian 的操作系统,这意味着将 /var/run/postgresqlhost 字段中,或者什么都没有(这是默认设置,除非环境变量另有说明)。

编辑:如果使用数据库 URI(自 Rails-4.1 起支持,如在 http://weblog.rubyonrails.org/2014/4/8/Rails-4-1/ ),语法可以是:

  • 对于本地主机:
    测试:“postgresql://localhost/myapp_test”

  • 对于默认的 Unix 套接字域(主机字段留空):
    测试:“postgresql:///myapp_test”

关于ruby-on-rails - PG::ConnectionBad: fe_sendauth: 没有提供密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com