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

проблема с паролем для резервного копирования базы данных postgres

У меня есть база данных postgres, которую я хочу регулярно резервировать. Для этого я бы хотел использовать скрипт автоматического резервного копирования Вот

Обычно для выполнения административных задач я использую эту команду:

> sudo -i -u postgres
> psql

Пароль не запрашивается, и я могу вручную выгрузить свою базу данных. Это не так уж и плохо.

Используя автоматизированный скрипт, я сталкиваюсь с проблемой пароля. Он просит меня postgres пароль. Я никогда не настраивал его, и я подумал, что мне не нужно настраивать его, как показано в приведенном выше примере.

Вот как настроен мой pg_hba.conf.

# Database administrative login by Unix domain socket
local   all             postgres                                peer
TYPE  DATABASE        USER            ADDRESS                 METHOD

"local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Мне действительно нужно установить postgres пароль для запуска моего скрипта?

Если вы запускаете скрипт как root:

sudo -u postgres psql

Если вы запускаете скрипт от имени другого системного пользователя, добавьте разрешение sudo для этого пользователя с помощью visudo перед выполнением вышеуказанной команды.

 <Systemuser> ALL=(postgres) NOPASSWD: /usr/bin/psql

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

  1. Мне не удалось запустить его, не установив пароль для postgres

    $ sudo -i -u postgres

    $ psql

    $ ALTER USER postgres С ПАРОЛЕМ 'new_password';

  2. Затем создайте .pgpass файл в домашнем каталоге системы, который запускает сценарий!

    $ echo '*: *: *: postgres: new_password'> ~ / .pgpass

    $ chmod 0600 ~ / .pgpass

  3. Вот и все.

Мои ошибки были:

  • думаю, что я мог бы справиться с этим, не устанавливая пароль postgres.
  • пытаюсь разместить .pgpass в / var / lib / postgresql (postgres home) вместо домашнего каталога пользовательской системы.

Надеюсь на эту помощь!