Java centOS中与postgresql的连接被拒绝
我知道很多人都会问这个问题,但我尝试了很多解决方案,但任何一个都是正确的 因此,我无法从远程客户端(LAN中)连接到我的postgresql server(在CentOS 6.4最低版本上-我只有postgresql server、ftp和ssh服务)。我有ssh连接,所以我认为这个问题可以通过tcp/ip权限解决。 Java抛出异常:Java centOS中与postgresql的连接被拒绝,java,database,jdbc,centos,postgresql-9.2,Java,Database,Jdbc,Centos,Postgresql 9.2,我知道很多人都会问这个问题,但我尝试了很多解决方案,但任何一个都是正确的 因此,我无法从远程客户端(LAN中)连接到我的postgresql server(在CentOS 6.4最低版本上-我只有postgresql server、ftp和ssh服务)。我有ssh连接,所以我认为这个问题可以通过tcp/ip权限解决。 Java抛出异常: org.postgresql.util.PSQLException: Connection refused. Check that the hostna
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:393)
at org.postgresql.Driver.connect(Driver.java:267)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Main.main(Main.java:19)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.postgresql.core.PGStream.<init>(PGStream.java:60)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:101)
... 11 more
/var/lib/pgsql/9.2/data/pg_hba.conf-仅文件的主要部分
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
host all all 192.168.1.18 255.255.255.0 password
#hostssl all all 192.168.1.18 255.255.255.0 trust
#hostnossl all all 192.168.1.18 255.255.255.0 trust
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
host all all 192.168.1.18 255.255.255.255 password
host all all ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff password
var/lib/pgsql/9.2/data/poissgresql.conf-仅主要部分
# - Connection Settings -
listen_addresses = '*'
#'localhost,192.168.1.18'
# what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
# Note: Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directory = '' # (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
最后一个调试信息是commentnetstat-ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:postgres *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 52 PC2.home:ssh Michal-laptop.home:26146 ESTABLISHED
tcp 0 0 PC2.home:ssh Michal-laptop.home:25917 ESTABLISHED
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:postgres *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
你能帮我的忙吗?我应该怎么做才能允许连接?
谢谢您的时间。在var/lib/pgsql/9.2/data/poistgresql.conf中 取消第行下方的注释:
#port = 5432
如果需要,可以更改侦听端口。重新启动服务。由于无法远程登录到服务器端口5432,因此必须在防火墙中打开端口5432
想想看,这就像是控制台上的
System->Administration->Firewall
或/usr/bin/System-config-Firewall
。从你的客户端机器上,你能做到telnet 192.168.1.16 5432
?如果它说连接失败或连接超时,很可能是服务器上的防火墙不允许该端口。我尝试了一下,你是对的:telnet:connect to address 192.168.1.18:connection time extut 5432是默认值,因此我认为它不必取消注释,因为我没有更改它。-如果不起作用,请尝试一下,您可以后退:)。根据我的说法,它会起作用的;)是的,谢谢你的关注,我试着改变它,但没有帮助。这是一个复杂的情况,因为centOS是虚拟机。你是对的。我解决了命令服务iptables stop的问题,但您知道我应该向iptables文件中添加哪些不停止fireware的内容吗?我尝试添加line-A输入-p tcp--dport 5432-j接受,但没有帮助??我想这最好作为一个单独的问题,以免弄乱局面。
#port = 5432