PostgreSQL Error F0000 config_file_error: Исправление Конфигурации
- Сервер PostgreSQL не запускается:
FATAL: F0000: configuration file "..." contains errors. - В логах фиксируются ошибки:
syntax error in postgresql.conf line XXилиinvalid authentication method in pg_hba.conf. - Сбой применения настроек при вызове
SELECT pg_reload_conf(). - Кластер серверов 1С теряет подключение к СУБД после редактирования конфигурационных файлов.
1. Проверка конфигурации перед перезапуском службы
Вы можете проверить синтаксис файлов конфигурации без остановки боевого сервера через системное представление pg_file_settings:
SELECT sourcefile, sourceline, name, setting, error
FROM pg_file_settings
WHERE error IS NOT NULL;
2. Проверка синтаксиса утилитой pg_conftool / проверкой запуска
Если сервер уже не запускается, запустите бинарник в режиме проверки конфигурации:
# Запуск проверки от пользователя postgres:
su - postgres -c "/usr/lib/postgresql/16/bin/postgres -D /var/lib/postgresql/data -C config_file"
Команда выведет номер строки и конкретную ошибку (например: bad value for memory size: "128Gb" — единицы измерения должны быть в нижнем или верхнем регистре без опечаток, например 128GB или 128MB).
3. Типовые ошибки в postgresql.conf
- Некорректный синтаксис строк: Строковые значения должны быть обязательно заключены в одинарные кавычки:
listen_addresses = '*'(а не двойные кавычки). - Ошибочные суффиксы памяти/времени: Допустимы только
kB,MB,GB,TB,ms,s,min,h,d. - Скрытые спецсимволы Windows: При редактировании конфига в Notepad на Windows строки получают окончания
CRLF. Преобразуйте их утилитойdos2unix:
dos2unix /etc/postgresql/16/main/postgresql.conf
dos2unix /etc/postgresql/16/main/pg_hba.conf
4. Исправление ошибок в pg_hba.conf
Проверьте количество колонок в строках авторизации (должно быть строго 5 полей для local и 6 для host):
# TYPE DATABASE USER ADDRESS METHOD
local all all peer
host all all 127.0.0.1/32 scram-sha-256
host enterprise_db v8_user 192.168.1.0/24 scram-sha-256
Частые вопросы (FAQ)
Что делать, если сервер упал из-за ошибки в postgresql.auto.conf?
Файл postgresql.auto.conf является текстовым. Откройте его в редакторе nano/vim по пути $PGDATA/postgresql.auto.conf, удалите некорректную строку и запустите службу PostgreSQL.
Применяются ли ошибочные параметры при вызове pg_reload_conf()?
Нет. При вызове reload PostgreSQL проверяет все параметры. Если в файле есть хотя бы одна синтаксическая ошибка, ВСЕ изменения откланяются, и сервер продолжает работать на старой конфигурации.
Какая кодировка должна быть у конфигурационных файлов PostgreSQL?
Конфигурационные файлы должны быть сохранены строго в кодировке UTF-8 (без BOM) с Unix-окончаниями строк (LF).
Как сделать резервную копию конфигов перед редактированием?
Всегда создавайте снапшот: cp postgresql.conf postgresql.conf.bak_$(date +%F_%T).