Пользователь "postgres" не прошёл проверку подлинности (по паролю)

Помогите разобраться народ !!!
Установлен PostgreSQL 9.6
Это моя настройка в pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD
LOCAL   ALL             postgres                                md5
# "local" is for Unix domain socket connections only
LOCAL   ALL             ALL                                     md5
# IPv4 local connections:
host    ALL             ALL             127.0.0.1/32            md5

Задан пароль пользователю "postgres" в Ubuntu
sudo echo -e "PAROL\nPAROL\n" | passwd postgres;
Пароль пользователю "postgres" в базе был задан:
sudo -U postgres psql -c "ALTER USER postgres WITH ENCRYPTED PASSWORD 'PAROL';"
Перезапускаю service postgresql restart
В результате, в логах:
2017-03-09 14:55:43 MSK [11185-1] СООБЩЕНИЕ:  система БД была выключена: 2017-03-09 14:55:42 MSK
2017-03-09 14:55:43 MSK [11185-2] СООБЩЕНИЕ:  Защита от наложения мультитранзакций сейчас включена
2017-03-09 14:55:43 MSK [11184-1] СООБЩЕНИЕ:  система БД готова принимать подключения
2017-03-09 14:55:43 MSK [11189-1] СООБЩЕНИЕ:  процесс запуска автоочистки создан
2017-03-09 14:55:44 MSK [11191-1] [н/д]@[н/д] СООБЩЕНИЕ:  неполный стартовый пакет
2017-03-09 14:55:44 MSK [11194-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:44 MSK [11194-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:45 MSK [11197-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:45 MSK [11197-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:45 MSK [11200-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:45 MSK [11200-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:46 MSK [11203-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:46 MSK [11203-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:46 MSK [11206-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:46 MSK [11206-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:47 MSK [11209-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:47 MSK [11209-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:47 MSK [11212-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:47 MSK [11212-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:48 MSK [11215-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:48 MSK [11215-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:48 MSK [11218-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:48 MSK [11218-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:49 MSK [11221-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:49 MSK [11221-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:49 MSK [11224-1] postgres@postgres ВАЖНО:  пользователь "postgres" не прошёл проверку подлинности (по паролю)
2017-03-09 14:55:49 MSK [11224-2] postgres@postgres ПОДРОБНОСТИ:  Пароль не подходит для пользователя "postgres".
	Подключение соответствует строке 86 в pg_hba.conf: "local   all             postgres                                md5"
2017-03-09 14:55:49 MSK [11184-2] СООБЩЕНИЕ:  получен запрос на "вежливое" выключение
2017-03-09 14:55:49 MSK [11189-2] СООБЩЕНИЕ:  процесс запуска автоочистки завершается
2017-03-09 14:55:49 MSK [11186-1] СООБЩЕНИЕ:  выключение
2017-03-09 14:55:49 MSK [11184-3] СООБЩЕНИЕ:  система БД выключена

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

ENCRYPTED PASSWORD это не

ENCRYPTED PASSWORD это не "md5" это "password"
По крайне мере раньше было так

Честно говоря, я пробовал и

Честно говоря, я пробовал и вариант просто с PASSWORD. Никакого отличия.

Как-то хреновато

Как-то хреновато пробовали:
Вставил в pg_hba.conf строку в самый верх:

local	all		victor					password

Далее:

# su - postges
$ createuser victor
$ createdb victor
$ psql
psql (9.2.18)
Введите "help", чтобы получить справку.

postgres=# ALTER USER victor WITH ENCRYPTED PASSWORD 'PAROL';
ALTER ROLE
postgres=# \q
-bash-4.2$ exit
logout
# service postgresql restart

Ну и в итоге:



# psql -U victor
Пароль пользователя victor:
psql (9.2.18)
Введите "help", чтобы получить справку.

victor=>

Пароль вводил 'PAROL'


Да все не так просто

Да все не так просто ............. с viktorom и у меня работает )))

Я пытаюсь понять как работать с пользователем postgres. Мне очевидно, что пароль для пользователя postgres в базе установился.
если в pg_hba.conf сделать такие записи и перегрузить сервер:

LOCAL   ALL             postgres                                peer
LOCAL   ALL             ALL                                     md5
host    ALL             ALL             127.0.0.1/32            md5

То сервер нормально рестартует и потом можно легко зайти с паролем, так:
root@server:~# psql -U postgres -h localhost
Пароль пользователя postgres:
psql (9.6.1)
SSL-соединение (протокол: TLSv1.2, шифр: ECDHE-RSA-AES256-GCM-SHA384, бит: 256, сжатие: выкл.)
Введите "help", чтобы получить справку.
postgres=#

Ну либо зайти, так:
root@server:~# su - postgres
postgres@server:~$ psql -U postges
psql (9.6.1)
Введите "help", чтобы получить справку.
postgres=#

Такой вариант, логично не проходит, как и должное:
root@server:~# psql -U postgres
psql: ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Peer)

Но если поменять настройку на md5, либо на password - без разницы

LOCAL   ALL             postgres                                md5
LOCAL   ALL             ALL                                     md5
host    ALL             ALL             127.0.0.1/32            md5

То, как я писал в первом посте, пользователь postgres не проходит проверку паролем и сервер просто отключается после перезагрузки (лог приведен в первом посте). К нему нельзя подключиться.
root@server~:# psql -U postgres
psql: не удалось подключиться к серверу: Нет такого файла или каталога
Он действительно работает локально и принимает
соединения через доменный сокет "/var/run/postgresql/.s.PGSQL.5432"?

Возможно процедура запуска

Возможно процедура запуска расчитана на то, чтобы у postgres был метод peer
Кстати это логично, ибо зачем вам заходить ЛОКАЛЬНО с паролем?
Локально - это я имею в виду, находясь на самом сервере и авторизовавшись в системе как postgres например через:
# su - postgres

Я тоже склоняюсь к такому

Я тоже склоняюсь к такому мнению. Просто, во всех мануалах гуляющих в сети, пишут про необходимость установить для postgres проверку пароля через md5. Так получилось, что я первый раз устанавливал PostgreSQL и голову себе сломал, что я делаю не так.

Они пишут в общем-то

Они пишут в общем-то правильно.
Просто для разных случаев надо использовать разный метод проверки пароля.
Например для LOCAL и postgres использовать peer
Для аутентификации с удалённого хоста, т.е. HOST и postgres уже использовать passwd или md5, но это не отменяет наличие записи LOCAL с postgres

Ну не знаю, в моем случае

Ну не знаю, в моем случае наличие записи

LOCAL   ALL             postgres                                md5

приводит к тому, что я даже сервер стартовать не могу. А во всех мануалах пишут именно эту рекомендацию

Вы спросили совета. Я вам его

Вы спросили совета. Я вам его дал. Что делать дальше - решайте сами.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023