尽管 pg_hba.conf/postgresql.conf 配置正确,PostgreSQL 9.3 仍拒绝用户远程连接

尽管 pg_hba.conf/postgresql.conf 配置正确,PostgreSQL 9.3 仍拒绝用户远程连接

我在 ubuntu 14.04 LTS 上运行 PostgreSQL 9.3。它是 apt 中提供的常规 Postgres 发行版。我在各种论坛中发现了大量帖子,这些帖子表明允许远程 psql 连接到数据库的正确方法是将以下行添加到 /etc/postgresql/9.3/main/pg_hba.conf:

host    all             all       0.0.0.0/0             md5

并在 /etc/postgresql/9.3/main/postgresql.conf 中设置:

listen_addresses = '*'

然后重新启动 dbms(“sudo service postgresql restart”)

我已经完成此操作,但在尝试从另一台服务器连接到此数据库时仍然出现以下错误:

psql -h <the db host> -p 5433 -d the_db the_user
$> Password for user the_user:  
$> (I enter the pw)
$> psql: FATAL:  password authentication failed for user "the_user"
$> FATAL:  password authentication failed for user "the_user"

请注意,密码绝对正确,因为在数据库主机上执行以下操作可以成功进入:

$>  psql -h localhost -d the_db the_user
$> Password for user the_user: 
$> (I enter the exact same pw as above)
$> psql (9.3.5, server 9.1.13)
$> Type "help" for help.
$> 
<the psql shell session begins>

我不知道我哪里出错了,因为配置似乎是正确的,密码是正确的,主机似乎正在接受远程连接(对于提示),只是在身份验证时失败了。如果您对如何实现这一点有想法,请告诉我。谢谢。

答案1

在第一个会话中,您使用端口 5433,在第二个会话中,您使用默认端口 5432。您可能安装了多个集群(它们可能附带不同版本的 PostgreSQL 包)。我建议您删除不使用的集群,pg_dropcluster并检查您是否连接到正确的集群。

(在放下东西之前一定要仔细检查,看看数据库里是否有有价值的信息)

相关内容