Postgresql 9.3 игнорирует файл pgpass.conf

#postgresql #postgresql-9.3

#postgresql #postgresql-9.3

Вопрос:

Использование Windows 10 и PostgreSQL 9.3.

У меня есть пакетный файл, который выполняет серию команд pg_dump для резервного копирования выбранных таблиц в базе данных, и связанный файл, который использует psql для их восстановления в пустой базе данных. Для каждого вызова pg_dump или psql я должен вводить пароль. На компьютерах клиентов (обычно некоторой версии Windows Server) у меня есть файл pgpass.conf для указания пароля, и мне не нужно вводить его каждый раз.

Мой файл pgpass.conf содержит localhost:5432:*:someuser:somepassword . Я попытался поместить его %APPDATA%/postresql и поместить в папку с именем c:misc и создать переменную среды с именем PGPASSFILE , содержащую c:miscpgpass.conf . Я перезапустил службу PostgreSQL после того, как изменил каждый из них.

Чего мне не хватает?

Комментарии:

1. Права доступа к файлам? Я не использую MS-Windows, но в Linux (IIRC) файл users .pgpass должен быть установлен как недоступный для чтения кем-либо, кроме пользователя ( chmod 600 )

2. @gsiems Я не думаю, что это относится к Windows.

3. Я бы использовал такой инструмент, как ProcMon, чтобы посмотреть, где он ищет файл, который даст вам подсказку, что не так.

Ответ №1:

Я боюсь, что это своего рода отсутствие ответа.

Я решил, что мне следует попробовать использовать поддерживаемую версию PostgreSQL, поэтому я установил 9.6. Я назначил ему порт 5435. Я добавил соответствующую строку в файл, на который указывает моя переменная среды PGPASSFILE. Это сработало. Я попытался настроить таргетинг на свою базу данных 9.3. Он все еще работал. Я удалил строку для порта 5435. Он все еще работал. Я скопировал файл pgpass.conf в папку %appdata%/postgresql по умолчанию, удалил ФАЙЛ PGPASSFILE, и он все еще работал!

Итак, я понятия не имею, что было сломано, и я понятия не имею, что это исправило, но это исправлено.