1С: Ошибка подключения к серверу СУБД из среды Linux (libpq / ODBC)
Механизм взаимодействия сервера 1С с СУБД в Linux
Серверный процесс 1С (rphost) в среде Linux взаимодействует с базами данных PostgreSQL (Postgres Pro Enterprise 1C) через динамическую клиентскую библиотеку libpq.so, а с СУБД MS SQL Server / Oracle / IBM DB2 — через подсистему unixODBC (libodbc.so). При попытке создания базы данных в консоли кластера (rac / Web-администрирование) или подключении пользователей возникает ошибка:
«Ошибка при выполнении операции с информационной базой: Ошибка подключения к серверу СУБД: FATAL: Ident authentication failed / libpq.so: cannot open shared object file / could not connect to server: Connection refused»
Бизнес-риски
Полный простой информационных систем предприятия, невозможность запуска регламентных заданий, срыв закрытия месяца и обмена с ЕГАИС/Честный Знак.
Сравнение архитектур подключения
| Параметр | PostgreSQL (libpq) | MSSQL Server под Linux (unixODBC) |
|---|---|---|
| Интерфейс | Нативная библиотека libpq.so.5 | Драйвер msodbcsql17 / msodbcsql18 + unixODBC |
| Типовой протокол | Unix Domain Socket (/tmp/.s.PGSQL.5432) или TCP 5432 | TCP/IP порт 1433 |
| Файл конфигурации доступа | pg_hba.conf на стороне СУБД | /etc/odbcinst.ini и /etc/odbc.ini |
Пошаговое восстановление подключения 1С к СУБД на Linux
Сценарий 1: Устранение отсутствия клиентской библиотеки libpq.so.5
Если на сервере 1С не установлен клиент PostgreSQL или платформа не может найти разделяемый объект:
# Установка клиентских библиотек PostgreSQL
sudo apt install -y libpq5 postgresql-client # Ubuntu/Debian/Astra
sudo dnf install -y libpq postgresql # RED OS/CentOS
# Проверка наличия библиотеки и создание симлинка при необходимости:
sudo ln -sf /usr/lib/x86_64-linux-gnu/libpq.so.5 /opt/1cv8/x86_64/8.3.24.1667/libpq.so
sudo ldconfigСценарий 2: Настройка метода аутентификации в pg_hba.conf (PostgreSQL)
Ошибка «FATAL: password authentication failed for user postgres / ident authentication failed» возникает при неверно настроенном правиле авторизации в pg_hba.conf:
# Откройте pg_hba.conf (путь зависит от версии Postgres Pro 1C):
sudo nano /var/lib/pgpro/1c-15/data/pg_hba.conf
# Замените методы ident/peer на md5 или scram-sha-256 для подключений 1С:
# TYPE DATABASE USER ADDRESS METHOD
local all all md5
host all all 127.0.0.1/32 md5
host all all 10.0.0.0/8 md5
# Перечитайте конфигурацию СУБД без остановки службы:
sudo su - postgres -c "psql -c 'SELECT pg_reload_conf();'"Сценарий 3: Настройка unixODBC и драйвера MS SQL Server на Linux
Если сервер 1С на Linux работает с удаленной базой Microsoft SQL Server:
# Установка Microsoft ODBC Driver 17 for SQL Server
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt update && sudo apt install -y msodbcsql17 unixodbc-dev
# Проверка соединения из консоли Linux утилитой sqlcmd:
sqlcmd -S mssql.corp.local -U sa -P 'MyStrongPassword123!' -Q "SELECT @@VERSION;"Типовые ошибки администраторов
- Указание имени хоста СУБД как 'localhost' вместо IP: В Linux при указании
localhostдрайвер 1С пытается подключиться через локальный сокет/tmp/.s.PGSQL.5432, которого может не быть, если PostgreSQL слушает127.0.0.1:5432. Указывайте явно IP127.0.0.1или реальный DNS-хост. - Блокировка трафика межсетевым экраном ufw / firewalld: Порт 5432 (PostgreSQL) или 1433 (MSSQL) закрыт на входящие подключения.
Эксперты ITSTM выполнят профессиональный аудит конфигурации СУБД, настроят shared_buffers, work_mem, max_connections и исключат деградацию производительности.
Частые вопросы (FAQ)
Почему 1С требует специальную сборку PostgreSQL от 1С / Postgres Pro 1C?
Стандартный (ванильный) PostgreSQL не содержит патчей 1С для работы с вложенными транзакциями (Savepoints), оптимизатора группировок, поддержки строк неограниченной длины и сортировок locale ICU, что приводит к фатальным ошибкам СУБД.
Как проверить доступность порта PostgreSQL с сервера 1С?
Выполните команду nc -zv db-server.corp.local 5432 или pg_isready -h db-server.corp.local -p 5432. Статус 'accepting connections' подтверждает готовность СУБД.
Что делать, если возникает ошибка 'SCRAM-SHA-256 authentication is not supported'?
Обновите клиентскую библиотеку libpq на сервере 1С. Устаревшие версии libpq (до версии 10) не поддерживают современный метод хэширования паролей SCRAM-SHA-256.
Как исправить ошибку 'could not connect to server: No such file or directory'?
Это означает, что клиент ищет Unix-сокет в /tmp, а СУБД создает его в /var/run/postgresql. Укажите в параметрах подключения 1С хост 127.0.0.1 вместо пустого поля или создайте симлинк сокета.