В Posgresql вы можете установить переменную с именем PGPASSWORD
(и PGUSER
), поэтому вам не нужно использовать пароль при использовании команд 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
Если вы добавите только вторую строку, это не сработает, вам нужно добавить обе.
Странно.