我有一个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
答案 0 :(得分:0)
由于某种原因,我的tomcat 8服务器今天早上在以前运行时做了同样的事情。我查看了/ var / log / audit中的selinux日志,发现以下内容使我重新工作:
sudo setsebool -P tomcat_can_network_connect_db true
已编辑:已添加-P标志以在重新启动之间停留。