Конфигурации PostgreSQL 11 не позволяют pgAdmin4 подключаться - PullRequest
5 голосов
/ 12 мая 2019

Я довольно новичок в PostgreSQL, поэтому вопрос может быть простым.Так.Я установил PostgreSQL 11 и pgAdmin 4 на Fedora 29. Я могу подключиться к базе данных через терминал или AzureDataStudio, но когда я пытаюсь соединиться с pgAdmin, я получаю эту ошибку:

Невозможно соединиться ссервер:

не удалось подключиться к серверу: разрешение запрещено. Сервер работает на хосте "127.0.0.1" и принимает соединения TCP / IP через порт 5432?

Я пытаюсьвсе, что можно найти за последние 3 дня, но мне ничего не помогло.Вот мои конфигурации:

# I set listen_address in postgresql.conf:
listen_addresses = '*'

# and these are my pg_hba.conf hosts:
local   all             all                     md5

host    all             all     127.0.0.1/32    md5
host    all             all     0.0.0.0/0       md5

host    all             all     ::1/128         md5
host    all             all     ::/0            md5

local   replication     all                     peer
host    replication     all     127.0.0.1/32    ident
host    replication     all     ::1/128         ident

Есть ли проблемы с этими конфигурациями?Или есть какой-либо совет, я должен знать, чтобы подключиться через pgAdmin?Заранее спасибо.

ОБНОВЛЕНИЕ:

Следует отметить, что я могу подключиться к базе данных через терминал:

psql -h 127.0.0.1 -U postgres

Соединение через AzureDataStudio не требуетсялюбые указанные данные.Существует форма, подобная этой:

enter image description here

И, заполнив форму и нажав кнопку Connect, вы подключитесь к базе данных.Кроме того, я могу подключиться к базе данных через JetBrains DataGrip с той же формой и данными.

ОБНОВЛЕНИЕ 2:

Я использую и PostgreSQL, и pgAdmin на моем локальном компьютеремашина под управлением Fedora 30.

ОБНОВЛЕНИЕ 3:

Вот моя полная информация о программном обеспечении:

// OS
Fedora 30 64-bit

// PostgreSQL
PostgreSQL 11.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.0.1 20190312 (Red Hat 9.0.1-0.10), 64-bit

// pgAdmin
Version    4.8
Copyright    Copyright (C) 2013 - 2019, The pgAdmin Development Team
Python Version    3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
Flask Version    1.0.2
Application Mode    Server

ОБНОВЛЕНИЕ 3:

Запуск команды sudo netstat -nlp | grep 5432 дает такой результат;

tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      16954/postmaster    
tcp6       0      0 :::5432                 :::*                    LISTEN      16954/postmaster    
unix  2      [ ACC ]     STREAM     LISTENING     952579   16954/postmaster     /var/run/postgresql/.s.PGSQL.5432

ОБНОВЛЕНИЕ 4: Решение!

Наконец, с помощьюиз ответ Яна Гараджа , я нашел решение.Прежде всего я установил приложение SELinux Troubleshooter :

sudo dnf install setroubleshoot

Затем я запустил инструмент устранения неполадок.Затем я попытался подключиться к базе данных через pgAdmin4 .Устранитель неполадок дал мне 2 ошибки с предлагаемыми решениями, которые выполняли эти команды:

sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_can_network_connect_db 1

Ответы [ 2 ]

1 голос
/ 09 июня 2019

Проверка журналов аудита SELinux - https://fedoraproject.org/wiki/SELinux_FAQ#How_do_I_find_out_whether_SELinux_is_denying_access_for_any_software.3F

Я вижу отказы в моей тестовой системе CentOS 7:

type=AVC msg=audit(1560101981.565:1942): avc:  denied  { name_connect } for  pid=63140 comm="httpd" dest=5432 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:postgresql_port_t:s0 tclass=tcp_socket permissive=0
type=SYSCALL msg=audit(1560101981.565:1942): arch=c000003e syscall=42 success=no exit=-13 a0=15 a1=7f741c06dfe0 a2=10 a3=7f742f9147b8 items=0 ppid=63139 pid=63140 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

Полагаю, у вас будет похожая проблема в вашей Fedora - вам нужно настроить политику SELinux.

0 голосов
/ 08 июня 2019

Предполагается, что в соответствии с указаниями вы можете подключиться к базе данных через терминал: Попробуйте запустить pgAdmin4 , используя root учетную запись администратора.

Для дальнейшей проверки вашей установки иconfiguration

Скопируйте образец конфигурации pgAdmin 4.

cp /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf

mkdir /var/log/pgadmin4/
mkdir /var/lib/pgadmin4/

Создание / редактирование файла config_local.py.

vi /usr/lib/python2.7/site-packages/pgadmin4-web/config_local.py

Добавьте следующие параметры.

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'

Измените разрешения каталогов, чтобы Apache мог записывать в них данные.

chown -R apache:apache /var/lib/pgadmin4/*
chown -R apache:apache /var/log/pgadmin4/*

Выполните следующую команду, чтобы создать учетную запись пользователя для веб-интерфейса pgAdmin 4.

python /usr/lib/python2.7/site-packages/pgadmin4-web/setup.py

pgAdmin4 поставляется с сервером и настольным развертыванием. Здесь мы предполагаем, что настольный компьютер Если у вас по-прежнему возникают проблемы, поделитесь журналами

...