Почему pg_dump игнорирует .pgpass? - PullRequest
0 голосов
/ 10 ноября 2019

Я создал файл .pgpass, который отлично работает для моей команды psql.

chris@ap2155489:~$ psql --host=my.example.com --port=12345 --username=chris -d example_db
psql (9.6.13)
SSL connection (protocol: TLSv1.2, cipher: xxx, bits: 256, compression: off)
Type "help" for help.

example_db=> \q

Когда я пытаюсь запустить pg_dump, у меня спрашивают пароль.

Я сделал chmod 0600 для моего файла .pgpass

chris@ap2155489:~$ pg_dump --host=my.example.com --port=12345 --username=chris -d example_db -f dbs/test.sql --clean
Password:

Что я делаюнеправильно?

Обе команды запускаются из домашнего каталога

ОБНОВЛЕНИЕ:

~$ ll /usr/bin/pg_dump
lrwxrwxrwx 1 root root 37 May  9  2019 /usr/bin/pg_dump -> ../share/postgresql-common/pg_wrapper*
~$ ll /usr/bin/psql
lrwxrwxrwx 1 root root 37 May  9  2019 /usr/bin/psql -> ../share/postgresql-common/pg_wrapper*

1 Ответ

2 голосов
/ 11 ноября 2019

Похоже, вы используете систему Ubuntu с установленной postgresql-client-common. pg_dump перегружен pg_wrapper, но .pgpass должен работать (я попробовал это на моей тестовой системе, и это нормально). Кажется, что ваш системный администратор, возможно, сделал что-то (возможно, с Perl?), Что побочным эффектом делает вас неспособным использовать .pgpass с pg_dump.

Один из возможных способов узнать, что происходит, -выполните perl -e "exec env" и посмотрите, на что установлена ​​переменная $HOME (или, возможно, она была очищена). Вы также можете, возможно, сделать strace pg_dump и посмотреть, какие каталоги затронуты - это будет генерировать много выходных данных, поэтому вам может быть трудно работать с ним.

В конечном счете, вам, вероятно, понадобится 1) поговорите со своим системным администратором и посмотрите, можно ли исправить среду, чтобы вы могли использовать .pgpass с псевдо- pg_dump pg_wrapper, или 2) использовать pg_dump напрямую (обычно это будетв /usr/lib/postgresql/<version_number>/bin/pg_dump, но вы, вероятно, должны найти его с помощью find /usr -name "pg_dump")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...