#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, и он все еще работал!
Итак, я понятия не имею, что было сломано, и я понятия не имею, что это исправило, но это исправлено.