- Я установил
PostgreSQL
наEC2
машину, и теперь я хочу изменить пароль пользователяpostgres
- я делаю
$ sudo -u postgres psql psql (9.1.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'newpasswd'; ALTER ROLE
- Затем я выхожу из оболочки и пытаюсь войти с новым паролем
$ psql -U postgres -W Password for user postgres: psql: FATAL: Peer authentication failed for user "postgres"
Моя PostgreSQL
версия
$ psql --version
psql (PostgreSQL) 9.1.5
contains support for command-line editing
Что это я делаю не так?
Спасибо
ОБНОВЛЕНИЕ
Я внес изменения, pg_hba.conf
и вот как это выглядит сейчас
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all peer
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Затем я перезапустил postgres
$ sudo /etc/init.d/postgresql restart
* Restarting PostgreSQL 9.1 database server [ OK ]
Я попытался войти снова, но не смог
$ psql -U postgres -W
Password for user postgres:
psql: FATAL: Peer authentication failed for user "postgres"
postgresql
postgresql-9.1
мечтатель
источник
источник
pg_hba.conf
настроен таким образом, что он не принимает аутентификацию по паролю.pg_hba.conf
Ответы:
Как сказал Уилглинн, это, вероятно, ваш файл pg_hba.conf.
Если у вас есть следующая строка:
затем измените его на:
Это должно позволить вам войти с новым паролем (при условии, что вы правильно его указали) :)
источник
peer
строка, которая применяется к локальным (доменные сокеты UNIX) соединениям отpostgres
пользователя. Это не получится, если удаленный конец не будет работать от имениpostgres
пользователя ОС . Смотрите документацию pg_hba.conf для лучшего понимания.django manage.py syncdb
, я все равно буду читать оpg_hba.conf
документации, которую вы упомянули, большое спасибо за вашу помощь-h localhost
Я просто хотел добавить это в дополнение к изменению
pg_hba.conf
файла изв
Согласно принятому ответу, единственный способ, с помощью которого я мог войти в систему после выполнения того же действия, которое выполнял OP, - это пропуск
-h
флага при попытке входа в систему.Надеюсь, это поможет кому-то в будущем. Это сводило меня с ума!
источник
У вас есть это ...
изменить на это:
и перезапустите сервис postgresql с помощью
эта работа для меня
источник
pg_hba.conf
вам не нужно перезапускать Postgres. Перезагрузка конфигурации достаточно. например,pg_ctl ... reload
илиselect pg_reload_conf()
Для тех, кто сходит с ума после многократного изменения пароля и пробует все упомянутое здесь, не забудьте проверить истечение срока действия пользователя. Вы можете установить «никогда не истек», как это в psql 9.x:
источник