Резервное копирование 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 вообще вы их используете.

Другие вопросы по тегам