Как исправить соединение с localhost: 5432 отказано в postgres, установленном на CentOS 7? - PullRequest
1 голос
/ 28 июня 2019

У меня есть дроплет digitalocean, и я пытаюсь установить свое веб-приложение на Java в CentOS 7, который использует базу данных postgres. Я успешно установил базы данных Java, tomcat и postgres. Я могу подключиться к базе данных postgres моей капли с моего локального компьютера, используя pgadmin, а также из локального затмения. Но при развертывании веб-приложения на сервере появляется следующая ошибка:

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. Я не внес никаких изменений в порт.

Я удалил дроплет и установил на него 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 голосов
/ 28 июня 2019

По какой-то причине мой сервер tomcat 8 сделал то же самое сегодня утром, когда он работал ранее. Я посмотрел журналы selinux в / var / log / audit и обнаружил, что следующее вернуло меня к работе:

sudo setsebool -P tomcat_can_network_connect_db true

Отредактировано: добавлен флаг -P для переключения между перезагрузками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...