Использование переменной PGPASSWORD, похоже, больше не работает в Postgresql 9.3

В Posgresql вы можете установить переменную с именем PGPASSWORD PGUSER ), поэтому вам не нужно использовать пароль при использовании команд postgresql, таких как psql или pg_dump

Но я немного сбит с толку, потому что не могу заставить его работать на Postgresql 9.3.10, и он все еще задокументирован на их сайте, как будто должен работать.

поэтому такие команды, как

PGPASSWORD = пароль psql -l

, не будут работать.

Я также не могу объявить их заранее, например

PGUSER = root

PGPASSWORD = пароль

psql -l

Он по-прежнему запрашивает пароль (хотя в данном случае он использует пользователя root как следует)

Единственный способ заставить его работать как-то - это выполнить .pgpass файл, но он работает только при использовании определенной базы данных, звездочка не работает и работает только с pg_dump, не все команды postgresql, такие как psql -l :

localhost: 5432: *: root: password

Это мои настройки pg_hba.conf , если это помогает:

local   all             root                                md5

    # 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
3
задан 7 January 2016 в 00:59
1 ответ

Оказывается, способ заставить его работать со всеми базы данных и команды - это добавление следующего в файл .pgpass:

localhost: 5432: dbname: user: password localhost: 5432: *: user: password

Если вы добавите только вторую строку, она не будет работать, вам нужно добавить обе.

Странно.

1
ответ дан 3 December 2019 в 07:25

Теги

Похожие вопросы