Назад | Перейти на главную страницу

Резервное копирование 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. Я просмотрел другие ответы и несколько руководств в Интернете, но до сих пор не могу понять, в чем проблема.

Любая помощь будет принята с благодарностью.

Вам нужно иметь буквальные значения в ~/.pgpass, а не переменные оболочки, такие как $DB_HOST.

Если вам нужны переменные среды, вы можете использовать их, поддерживаемые libpq (клиентская библиотека PostgreSQL), например $PGDATABASE или $PGPASSWORD. Есть многие другие. Тебе не понадобится ~/.pgpass вообще это вы их используете.