Простите за длинный пост.. Я хотел быть как можно более подробным, чтобы легче было определить проблему ..

Поэтому я следовал инструкциям на странице загрузки PostgreSQL и начал запускать сервер PostgreSQL, работающий на порту 5432 моей виртуальной машины CentOS 7.

## Install the repository RPM
sudo yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

## Install the client packages
sudo yum install postgresql11

## Install the server packages
sudo yum install postgresql11-server

## Initialise the database and enable automatic start
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
sudo systemctl enable postgresql-11
sudo systemctl start postgresql-11

После описанных выше шагов я сделал следующие шаги, чтобы сделать сервер postgres доступным удаленно.

# Open DB port
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent # success

sudo firewall-cmd --reload # success

# Added "listen_addresses = '*'" in the file below
nano /var/lib/pgsql/11/data/postgresql.conf

# and wrote the following lines...
host    all             all             ::0/0                   md5
host    all             all             0.0.0.0/0               md5
# at the end of the `pg_hba.conf` file. 

Прежде чем двигаться дальше, я просто хотел посмотреть, смогу ли я войти в psql как postgres от другого пользователя. Поэтому я вхожу в личный кабинет и делаю это psql -h 127.0.0.1 -U postgres , что дает мне следующее:

psql: FATAL: аутентификация идентификатора не удалась для пользователя "postgres"

Это прекрасно джентльмены говорит , что имя пользователя postgres VM Логгина пароль и роль базы данных postgres пароль являются две разные вещи (Link), так что я следующее , чтобы изменить пароль Postgres роль в

# bash
su - postgres    
psql    
# postgreSQL
ALTER USER postgres PASSWORD 'new_password'
\q
# bash
exit
psql -h 127.0.0.1 -U postgres # this works now

Теперь я чувствовал себя очень готовым.

Я запускаю pgAdmin 4 на своей локальной машине, делаю следующее и нажимаю сохранить. Я получаю следующее сообщение об ошибке:

Невозможно подключиться к серверу:
не удалось подключиться к серверу: истекло время ожидания соединения (0x0000274C/10060)
Сервер работает на хосте "XX.XXX.XX.XX" и принимает
Соединения TCP/IP на порту 5432?

Поэтому я иду и перепроверяю, что порт слушает.

sudo netstat -nlt | grep 5432 
# Output
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN

В качестве альтернативы я устанавливаю ssh-туннель с ssh -N -L localhost:5432:localhost:5432 postgres@XX.XXX.XX.XX , и делаю это в pgAdmin и нажимаю save. Я получаю следующее сообщение об ошибке:

Невозможно подключиться к серверу:
FATAL: Идентификационная идентификация не удалась для пользователя "postgres"

Я сбит с толку .. Я не понимаю, почему я получаю это сообщение, потому что я думал, что это было решено, когда я назначил пароль для роли postgres ..

Я прочитал так много сообщений SOF, связанных с этой проблемой, и экспериментировал с файлом pg_hba.conf чтобы попытаться установить соединение без успеха ...

Я боролся в течение нескольких часов Кто-нибудь, пожалуйста, помогите ..

0