Postgresql:连接被拒绝,检查主机名和端口是否正确,邮局主管是否接受TCP/IP连接[重复]

kpbwa7wx  于 2023-05-28  发布在  PostgreSQL
关注(0)|答案(1)|浏览(157)

此问题已在此处有答案

Connection refused (PGError) (postgresql and rails)(6个答案)
9年前关闭。
我试图连接postgresql,但我得到这个错误。

org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

我的pg_hba.conf文件是这样的。

TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

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

如果有人能解释一下这里发生了什么,以及我应该如何纠正,我将不胜感激。

qlvxas9a

qlvxas9a1#

您引用的错误与pg_hba.conf无关;是连接失败,不是连接授权失败
按照错误消息所述执行操作:
检查主机名和端口是否正确,以及邮局主管是否接受TCP/IP连接
您尚未显示产生错误的命令。假设你在localhost端口5432(标准PostgreSQL安装的默认值)上连接,那么:

  • PostgreSQL未运行
  • PostgreSQL不侦听TCP/IP连接(postgresql.conf中的listen_addresses
  • PostgreSQL只监听IPv4(0.0.0.0127.0.0.1),而你连接的是IPv6(::1),反之亦然。这似乎是一个问题,在一些旧的Mac OS X版本,有奇怪的IPv6套接字行为,并在一些旧的Windows版本。
  • PostgreSQL正在侦听与您正在连接的端口不同的端口
  • (不太可能)有一个iptables规则阻止环回连接

(If如果你没有在localhost上连接,它也可能是阻止TCP/IP连接的网络防火墙,但我猜你使用的是默认值,因为你没有说)。
所以...检查一下

  • ps -f -u postgres应列出postgres进程
  • sudo lsof -n -u postgres |grep LISTENsudo netstat -ltnp | grep postgres应显示PostgreSQL正在侦听的TCP/IP地址和端口

顺便说一句,我想你一定是在一个旧版本。在我的9.3安装中,错误更加详细:

$ psql -h localhost -p 12345
psql: could not connect to server: Connection refused
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 12345?

相关问题