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

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

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

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

так команды вроде

PGPASSWORD=password psql -l

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

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

PGUSER=root

PGPASSWORD=password

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

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

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

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

Странно.