Резервное копирование PostgreSQL - запрашивается пароль
ОС: Ubuntu Xenial 16.04 LTS
Версия PostgreSQL: 9.5.4
Я пытаюсь настроить автоматическое резервное копирование базы данных на моем сервере, и каждый раз, когда я запускаю pg_dump
, он говорит мне, что пароль не был предоставлен. Вот команда, которую я использую для тестирования:
pg_dump --host $DB_HOST --port 5432 --username $DB_USER --no-password --format custom --blobs --verbose --file ~/backups/postgresql/test.backup $DB_NAME
Все мои переменные среды работают просто отлично. Чтобы предоставить PostgreSQL пароль, я создал .pgpass
файл в ~/.pgpass
, Вот как это выглядит:
# имя хоста: порт: база данных: имя пользователя: пароль $DB_HOST:5432:$DB_NAME:$DB_USER:$DB_PASS
Файл имеет 0600
разрешения, как указано в руководстве. Тем не менее, по какой-то причине он не использует пароль, когда я запускаю pg_dump
, Я просмотрел другие ответы и несколько руководств в Интернете, но все еще не могу понять, в чем проблема.
Любая помощь будет принята с благодарностью.
1 ответ
Вы должны иметь буквальные значения в ~/.pgpass
, а не переменные оболочки, такие как $DB_HOST
,
Если вам нужны переменные окружения, вы можете использовать их, поддерживаемые libpq (клиентская библиотека PostgreSQL), например $PGDATABASE
или же $PGPASSWORD
, Есть много других. Вам не понадобится ~/.pgpass
вообще вы их используете.