如何修复在CentOS 7上安装的postgres中拒绝连接到localhost:5432的连接?

时间:2019-06-28 05:05:45

标签: spring postgresql centos

我有一个digitalocean发行版,我试图在使用postgres数据库的CentOS 7上安装我的Java Web应用程序。我已经成功安装了Java,tomcat和postgres数据库。我可以使用pgadmin从本地机器以及本地eclipse连接到我的Droplet的postgres数据库。但是,当我在服务器上部署Web应用程序时,出现以下错误:

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

我已将listen_addresses ='*'添加到postgresql.conf

这是pg_hba.conf中的代码

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
host all all 0.0.0.0/0 md5

是否存在防火墙问题?我需要提供任何特殊许可吗?我用来连接的端口是5432。我尚未对该端口进行任何更改。

我删除了Droplet并在其上安装了ubuntu 18,我能够成功连接到数据库。再次,我安装了CentOS 7,它也出现了同样的问题。

这是iptables -L

的输出
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

sestatus

 SELinux status:                 enabled
    SELinuxfs mount:                /sys/fs/selinux
    SELinux root directory:         /etc/selinux
    Loaded policy name:             targeted
    Current mode:                   enforcing
    Mode from config file:          enforcing
    Policy MLS status:              enabled
    Policy deny_unknown status:     allowed
    Max kernel policy version:      31

1 个答案:

答案 0 :(得分:0)

由于某种原因,我的tomcat 8服务器今天早上在以前运行时做了同样的事情。我查看了/ var / log / audit中的selinux日志,发现以下内容使我重新工作:

sudo setsebool -P tomcat_can_network_connect_db true

已编辑:已添加-P标志以在重新启动之间停留。