【问题标题】:postgres connection refused in swingpostgres连接在摇摆中被拒绝
【发布时间】:2014-10-21 02:15:42
【问题描述】:

我在连接远程机器时遇到错误,这里是 java 错误日志 -

DBConnection.getConnectionFromDB - Error Occured -- SQL EXCEPTION
org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:207)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136)
at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
at org.postgresql.Driver.makeConnection(Driver.java:397)
at org.postgresql.Driver.connect(Driver.java:267)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)

这里是 pg_hba.conf 文件 -

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.101/24        trust
host    all             all             0.0.0.0/0               trust
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

【问题讨论】:

  • 服务器在运行吗?用户名/密码是否正确?
  • @ScaryWombat : 是的,postgres 服务正在运行,并且用户名密码正确。
  • @MadProgrammer :我尝试禁用防火墙,但它不起作用。我应该提供java代码吗?我想要实现的是通过可执行jar访问数据库,数据库机器分配了ip 192.168.1.101,其他机器没有分配任何ip,他们将通过DHCP获取它。

标签: java postgresql postgresql-9.2


【解决方案1】:

首先,检查 postgresql.conf 配置文件中参数listen_addresses 的值。如果未设置,则数据库引擎将仅接受通过本地 Unix 套接字的连接,并且不会侦听任何 TCP/IP 端口。

在此之后,确认您可以使用命令行工具 psql 从客户端计算机连接到数据库。

如果你不能做到这一点,并假设机器有 ip 联系(即,你可以从客户端 ping 服务器),那么它意味着防火墙,无论是在客户端,服务器上,还是一些中间交换机或路由器.

如果您确实设法通过 psql 进行连接,请检查您在 jdbc 连接字符串中使用的连接参数,尤其是地址/主机名和端口号。

哦,顺便说一句,您在 pg_hba.conf 中以 'trust' 结尾的两行是一个非常糟糕的主意。它们意味着任何机器上的任何人都可以在不提供密码或任何其他凭据的情况下进行连接。

【讨论】:

    【解决方案2】:

    已解决 关注

    更新/var/lib/pgsql/&lt;version&gt;/data/postgresql.conf

    更改#listen_addresses = 'localhost' to listen_addresses = '*'

    重启服务

    【讨论】:

      猜你喜欢
      • 2021-04-24
      • 2018-07-03
      • 2013-02-22
      • 2021-04-12
      • 2021-03-23
      • 2021-10-12
      • 2020-09-08
      • 2020-12-31
      • 2017-08-08
      相关资源
      最近更新 更多