postgres连接被拒绝了

时间:2014-10-21 02:15:42

标签: java postgresql postgresql-9.2

连接到远程计算机时出错,这是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

2 个答案:

答案 0 :(得分:0)

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

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

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

如果你设法通过psql连接,那么检查你在jdbc连接字符串中使用的连接参数,特别是地址/主机名和端口号。

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

答案 1 :(得分:0)

解决 请关注

更新/var/lib/pgsql/<version>/data/postgresql.conf

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

重新启动服务