Ошибка PostgreSQL 08001 sqlclient_unable_to_establish_sqlconnection
Клиентское приложение, драйвер ODBC/JDBC или сервер 1С не может установить первичное TCP/IP соединение с инстансом СУБД:
could not connect to server: Connection refused
Is the server running on host "192.168.1.50" and accepting TCP/IP connections on port 5432?
SQLSTATE: 08001 1. Проверка статуса службы PostgreSQL и прослушиваемого порта
# Проверка статуса сервиса
systemctl status postgresql*
# Проверка открытых портов
ss -tulpn | grep 54322. Настройка параметра listen_addresses в postgresql.conf
По умолчанию PostgreSQL слушает только локальный интерфейс localhost. Для доступа по локальной сети измените конфигурацию:
# В файле /etc/postgresql/*/main/postgresql.conf или /var/lib/pgsql/data/postgresql.conf:
listen_addresses = '*' # Либо конкретный IP интерфейса сервераsystemctl restart postgresql3. Проверка межсетевого экрана (Firewall / iptables / ufw)
# Для Ubuntu/Debian (ufw):
ufw allow 5432/tcp
# Для RHEL/CentOS/Rocky (firewalld):
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload4. Проверка доступности порта с сервера 1С:Предприятие
# Выполнить с клиентской машины/сервера 1С:
nc -zv 192.168.1.50 5432
# Либо через PowerShell на Windows:
Test-NetConnection -ComputerName 192.168.1.50 -Port 5432 Частые вопросы (FAQ)
Почему 08001 возникает при локальном подключении на том же сервере?
При локальном подключении клиент может пытаться подключиться через UNIX-сокет (/tmp/.s.PGSQL.5432 или /var/run/postgresql/.s.PGSQL.5432). Если сокет отсутствует или не совпадают права на папку, соединение отклоняется.
Как проверить, не заблокирован ли порт политиками SELinux?
Выполните semanage port -l | grep postgresql. Если порт нестандартный, добавьте его: semanage port -a -t postgresql_port_t -p tcp <PORT>.
В чем разница между ошибками 'Connection refused' и 'Connection timed out' в рамках 08001?
'Connection refused' означает, что хост доступен, но служба на порту не запущена или listen_addresses настроен неверно. 'Connection timed out' указывает на сетевую фильтрацию пакетов (DROP на Firewall/роутере).
Как настроить несколько инстансов PostgreSQL на одном сервере без конфликта 08001?
Каждый инстанс должен иметь уникальный параметр port в postgresql.conf (например, 5432, 5433) и отдельный каталог данных (PGDATA).