В 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
Оказывается, способ заставить его работать со всеми базы данных и команды - это добавление следующего в файл .pgpass:
localhost: 5432: dbname: user: password
localhost: 5432: *: user: password
Если вы добавите только вторую строку, она не будет работать, вам нужно добавить обе.
Странно.