连接到远程计算机时出错,这是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
答案 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 = '*'
重新启动服务