psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "superadmin"

Хочу зайти в бд с суперюзера с помощью этой команды psql --username=superadmin books_db,но выходит ошибка в заголовке.Уже пробовал и с sudo и указывал точно что это суперюзер но выходит одна и тоже ошибка.Я новичок в psql(2 месяца),поэтому я хз как это исправить(.

Linux(Дистрибутив) = Ubuntu

Установленно на виртуалку

p.s Список всех юзеров:

Role name  |                         Attributes                         | Member of 
------------+------------------------------------------------------------+-----------
 books_user |                                                            | {}
 postgres   | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 superadmin | Superuser                                                  | {}

Ответы (1 шт):

Автор решения: newman

Вероятней всего проблема в том что некорректно настроены варианты авторизации для postgresql

В общем-то это довольно таки объемный кусок документации. Настраивается это в pg_hba.conf. Нужно изменить peer на md5. После внесения изменений нужно перезапустить сервер базы данных.

Если кратко, то peer authentication это авторизация по имени пользователя. Т.е. авторизация идет от имени пользователя, под которым был запушен psql.

password authentication (m5) - авторизация по имени и паролю

Таким образом вам надо либо создать в системе пользователя superadmin и запускать psql под этим пользователем. Либо, что проще, переключить настройки авторизации на md5 и тогда psql можно запускать под любым пользователем - надо просто указывать логин в параметрах командной строки.

→ Ссылка