Ошибка postgres does not know where to find the server configuration file возникает при запуске сервера напрямую, без указания каталога данных. Процессу postgres не передан ни путь к каталогу данных, ни путь к postgresql.conf, поэтому он не может стартовать. Причина почти всегда в способе запуска, а не в повреждении файлов.
Как исправить
- Укажите каталог данных явно при запуске ключом -D:
- Либо задайте переменную окружения PGDATA, чтобы не передавать путь каждый раз:
- Проще запускать сервер не напрямую, а через штатные средства – pg_ctl или системный сервис, которые сами подставляют каталог данных:
postgres -D /var/lib/pgsql/data
export PGDATA=/var/lib/pgsql/data
pg_ctl -D /var/lib/pgsql/data start
Когда возникает
Ошибка типична при ручном запуске postgres в обход systemd или служб дистрибутива. Если postgresql.conf вынесен из каталога данных (как в Debian и Ubuntu), путь к нему указывают отдельным ключом -c config_file=…. Через системный сервис (systemctl start postgresql) этот сбой не возникает – юнит передает нужные пути автоматически.