Ошибка PostgreSQL «Не удалось подключиться к серверу»: Как устранить неполадки

Ошибка PostgreSQL «Не удалось подключиться к серверу» может возникать по разным причинам. Часто достаточно перезапустить систему управления базами данных с открытым исходным кодом или настроить параметры TCP/IP.

Требования

  • Облачный сервер под управлением Linux (CentOS 7 или Ubuntu 16.04).
  • PostgreSQL установлен и запущен.

«Не удалось подключиться к серверу: No such file or directory»

Ошибка PostgreSQL «Не удалось подключиться к серверу: No such file or directory» обычно означает, что PostgreSQL не запущен. Однако на самом деле эта ошибка часто связана с проблемами с правами доступа.

Во-первых, используйте команду systemctl status postgresql, чтобы проверить статус PostgreSQL:

user@localhost:~# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: **active** (exited) since Thu 2017-03-23 21:34:03 UTC; 14s ago
 Main PID: 24289 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/postgresql.service
Mar 23 21:34:03 localhost.localdomain systemd[1]: Starting PostgreSQL RDBMS...
Mar 23 21:34:03 localhost.localdomain systemd[1]: Started PostgreSQL RDBMS.
Mar 23 21:34:08 localhost.localdomain systemd[1]: Started PostgreSQL RDBMS.

Если статус активен, перезапустите PostgreSQL с помощью команды systemctl restart postgresql. Если статус неактивен, запустите PostgreSQL командой systemctl start posgresql.

Если перезапуск не устранил проблему, посмотрите разрешения каталога с путем /var/lib/postgresql/9.6/main. Номер версии 9.6 может отличаться в зависимости от вашей установки. Ожидается, что разрешения для папок установлены на «0700», а разрешения для файлов — на «0600». Это означает, что папки должны иметь разрешения на чтение, запись и выполнение, а файлы — на чтение и запись. Используйте команду ls по указанному выше пути для отображения текущих разрешений.

Если вы обнаружите, что разрешения отличаются, выполните следующие команды в командной строке:

sudo chown -R postgres:postgres /var/lib/postgresql/9.6/
sudo chmod -R u=rwX,go= /var/lib/postgresql/9.6/

Перезапустите PostgreSQL, как показано выше.

«Не удалось подключиться к серверу: Connection refused»

Другой вариант ошибки PostgreSQL — «Не удалось подключиться к серверу: Connection refused».

Сначала используйте команду systemctl-status postgresql, чтобы убедиться, что PostgreSQL запущен. Чтобы убедиться, что PostgreSQL запущен, вы также можете перезапустить его с помощью команды systemctl restart postgresql.

Если это не помогло, наиболее вероятной причиной ошибки является то, что PostgreSQL не настроен на разрешение TCP/IP соединений.

Чтобы исправить это, отредактируйте файл posgresql.conf. Его можно найти в одном из следующих путей к файлам, в зависимости от вашего дистрибутива Linux:

  • Ubuntu 16.04: sudo nano /etc/postgresql/9.5/main/posgresql.conf
  • CentOS 7: sudo nano /usr/pgsql-10/share/postgresql.conf

Проверьте конфигурацию listen_address. Чтобы разрешить TCP/IP соединения, она должна быть установлена на «0.0.0.0» (чтобы разрешить соединения со всех IP-адресов) или на конкретный IP-адрес сервера, к которому будет разрешено подключение.

Если этот параметр оставить пустым или установить значение localhost, PostgreSQL не будет разрешать внешние TCP/IP-соединения. Это также соответствует настройкам PostgreSQL по умолчанию.

PostgreSQL не сможет подключиться к серверу, если соединение заблокировано брандмауэром. Обратите внимание, что на все облачные серверы действует политика брандмауэра по умолчанию, которая управляется из панели облака.

  • Ноу-хау

    Оцените статью
    cdelat.ru
    Добавить комментарий