У меня есть база данных 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
Итак, что я выяснил, чтобы запустить этот скрипт от системного пользователя.
Мне не удалось запустить его, не установив пароль для postgres
$ sudo -i -u postgres
$ psql
$ ALTER USER postgres С ПАРОЛЕМ 'new_password';
Затем создайте .pgpass
файл в домашнем каталоге системы, который запускает сценарий!
$ echo '*: *: *: postgres: new_password'> ~ / .pgpass
$ chmod 0600 ~ / .pgpass
Вот и все.
Мои ошибки были:
Надеюсь на эту помощь!