我得到了错误:

FATAL: Peer authentication failed for user "postgres"

当我尝试让postgres与Rails一起工作时。

这是pg_hba.conf,我的数据库。Yml,以及完整跟踪的转储。

我在pg_hba中将身份验证更改为md5,并尝试了不同的方法,但似乎都不起作用。

我还尝试按照Rails 3.2创建一个新用户和数据库,FATAL: Peer authentication failed for user (PG::Error)

但是它们不会在pgadmin上显示,甚至当我运行sudo -u postgres psql -l时也不会显示。

知道我哪里错了吗?


当前回答

最简单的解决方案,无需更改配置。(ubuntu) 修改用户,然后连接数据库cli。

sudo -i -u postgres

psql

摘自https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04

其他回答

这对我来说很有效!!

sudo -u postgres psql

如果你想保持默认配置,但想对一个特定的用户/db连接进行socket md5认证,在“local all/all”行之前添加一个“local”行:

# TYPE  DATABASE     USER         ADDRESS             METHOD

# "local" is for Unix domain socket connections only
local   dbname       username                         md5  # <-- this line
local   all          all                              peer
# IPv4 local connections:
host    all          all          127.0.0.1/32        ident
# IPv6 local connections:
host    all          all          ::1/128             ident

在CentOS 7, PG 10上,文件路径为

/var/lib/pgsql/10/data/pg_hba.conf

您只需要将METHOD设置为信任。

#TYPE  DATABASE        USER            ADDRESS                 METHOD
local    all             all                                     trust

并重新加载postgres服务器。

# service postgresql-9.5 reload

修改pg_hba.conf不需要重启postgres服务器。重新加载。

我的问题是我没有输入任何服务器。我以为它是默认的,因为占位符,但当我输入localhost它工作。