Проверка подлинности с помощью пароля Postgres

36

Я установил PostgreSQL 9.1 и pgadmin3 на Ubuntu Server 13.10.

Я настроил postgresql.conf с помощью: listen_addresses = '*'

также я настроил ph_hba.conf, изменив одноранговые подключения к md5

Плюс я сбрасываю пароль postgres: sudo password postgres

затем перезапустил службу с sudo /etc/init.d/postgresql restart

после этого я попытался подключиться к базе данных шаблонов PostgreSQL по умолчанию:

sudo -u postgres psql template1

но войти не удалось с этим сообщением об ошибке:

psql: FATAL:  password authentication failed for user "postgres"

Затем я попытался войти в систему с pgadmin, который выдал мне ту же ошибку.

Я читал здесь, что это может быть ошибка истечения срока действия пароля Пользователь PostgreSQL не может подключиться к серверу после смены пароля

но я не мог решить это, потому что я не могу войти с PSQL. Кто-нибудь сейчас как решить эту проблему?

РЕДАКТИРОВАТЬ

файл ph_hba:

Вот

Скриншот:

введите описание изображения здесь

Shadin
источник
7
Меня раздражает тот факт, что вы клонировали этот пост. Я только что написал ответ на это, только чтобы обнаружить, что вы также отправили идентичный вопрос на stackoverflow.com, на который уже был принят ответ. Не копируйте и не вставляйте ответы между сайтами, вы тратите время каждого и усложняете поиск информации. Если вы настаиваете на этом, сделайте ссылки между ними.
Крейг Рингер

Ответы:

67

Вы путаете пароль пользователя unix "postgres" с паролем базы данных для пользователя базы данных "postgres". Это не одно и то же.

Вы заблокировали себя, потому что вы включили md5аутентификацию для пользователя базы данных postgresбез установки пароля для пользователя базы данных postgres.

Добавьте новую строку в начало pg_hba.conf:

local    postgres     postgres     peer

затем перезапустите / перезагрузите PostgreSQL и:

sudo -u postgres psql

Из полученного приглашения:

ALTER USER postgres PASSWORD 'my_postgres_password';

затем удалите строку, к которой вы добавили, pg_hba.confи перезапустите Pg снова. Теперь вы можете использовать пароль, который вы установили выше, чтобы подключиться к PostgreSQL как postgresпользователь.

Чтобы узнать больше, прочитайте главу «Аутентификация клиента» в руководстве пользователя и документыpg_hba.conf .

Крейг Рингер
источник
1
Тестирование нового pg9.6.6 на сервере UBUNTU 16 LTS .... И я был удивлен всеми этими "проблемами новичка". Приезжайте сюда с решением ... Делайте шаг за шагом ... Большой сюрприз: не работает! psql -W postgresql://postgres:postgres@localhostпроизводя снова то же самое «ФАТАЛЬНО: сбой аутентификации по паролю для пользователя« postgres »»
Питер Краусс
Решение: доверие всех линий работает ...
Питер Краусс
Я использую ssh ... После того, как все по одному вернулось обратно в md5 (локальный, локальный, хост ...), только строка "host all 127.0.0.1/32 trust" не может измениться, была сохранена с " доверять". Итак, новый вопрос: почему?
Питер Краусс
pg_hba.confфайл принадлежит пользователю системы postgres. Я знаю только пароль базы данных пользователя базы данных postgres, поэтому вопрос в том, как мне отредактировать этот файл conf, не меняя владельца?
Shailen
Подскажите пожалуйста, для чего local postgres postgres peerдействительно нужна линия pg_hba.conf? Все работает хорошо без него
MaxCore
3

Попробуйте изменить пароль базы данных template1, используя это:

$ psql -c "ALTER USER postgres WITH PASSWORD 'yourPassword'" -d template1
pfugazza
источник
Дали мне ту же ошибку, но с пользователем "root" вместо пользователя "postgres"
Shadin
Можете ли вы объяснить, почему это может помочь?
xliiv
2

в вашем pg_hba.conf

# IPv4 local connections:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         all         127.0.0.1/32         trust

если не работает то попробуй с

host    all         all         your_ip/32         trust

затем перезапустите базу данных, она будет работать нормально ... если вы доверяете, тогда нет необходимости в пароле, если вы делаете MD5, тогда он спросит пароль ...

smn_onrocks
источник
3
нигде не используйте этот подход, вы всегда должны ограничивать доступ пользователей к вашим данным
Most Wanted
если вы не используете сервер CTF.
Следопыт