无法获得密码身份验证

时间:2018-09-29 23:09:19

标签: postgresql

我想做一些非常简单的事情:创建一个PostgreSQL数据库,然后使用psql连接到它。所以这就是我所做的:

  1. sudo apt install postgresql-9.6(在Ubuntu 18.04上)
  2. sudo -su postgres(为postgres系统用户启动shell)
  3. createuser -P foo(创建一个用户并提示输入该用户的密码)
  4. createdb -O foo foo(创建先前创建的用户拥有的数据库)

所有这些都完美无瑕,任何地方都没有错误。但是,当我尝试使用psql -h localhost -U foo foo连接到数据库时,我无法访问数据库(密码绝对正确)。错误消息是psql: FATAL: password authentication failed for user "foo"

/etc/postgresql/9.6/main/pg_hba.conf如下所示:

local   all          postgres                   peer
local   all          all                        peer
host    all          all        127.0.0.1/32    md5
host    all          all        ::1/128         md5

对我来说一切都很好,但是那根本行不通。我在这里想念什么?

我也尝试过alter user foo valid until 'infinity'。尽管命令成功完成,但对解决问题没有帮助。

//编辑:我注意到这个问题有些奇怪。当我删除-h localhost时,对等身份验证失败(如预期的那样,因为系统上没有用户foo)。这将在/var/log/postgresql/postgresql-9.6-main.log中保留三行日志。但是,当我使用-h localhost标志时,根本不会生成任何日志。

// edit:我现在已经在Fedora 28机器上尝试了相同的操作,并且按预期工作。我不知道会有什么区别(除了操作系统和postgres版本(10.5)

0 个答案:

没有答案