Как исправить ошибку «psql: FATAL: роль postgres не существует» в PostgreSQL

Сообщение об ошибке «psql: FATAL: роль postgres не существует» указывает на то, что роль пользователя PostgreSQL «postgres» не существует в базе данных. Эта ошибка может возникнуть при попытке подключения к базе данных PostgreSQL с использованием роли postgres, но роль не была создана или была удалена.

Вот несколько способов решения этой проблемы:

Метод 1: создание роли postgres
Вы можете создать роль postgres с помощью утилиты командной строки PostgreSQL под названием createuser. Запустите следующую команду в своем терминале:

createuser --interactive --pwprompt

Эта команда предложит вам ввести имя роли («postgres») и пароль для этой роли. Следуйте инструкциям и предоставьте необходимую информацию.

Метод 2: создание роли postgres с привилегиями суперпользователя
Если вам нужна роль postgres для получения привилегий суперпользователя, вы можете создать ее с помощью команды createuser с ключами ‘-s’ или ‘- опция суперпользователя:

createuser --interactive --pwprompt --superuser

Эта команда создаст роль postgres с правами суперпользователя.

Метод 3: изменение файла pg_hba.conf
Если роль postgres существует, но ошибка по-прежнему возникает, возможно, необходимо изменить конфигурацию аутентификации. Откройте файл конфигурации PostgreSQL под названием «pg_hba.conf» (расположенный в каталоге данных PostgreSQL) и убедитесь, что в качестве метода аутентификации для роли «postgres» установлен действительный метод, например «trust» или «md5». Вот пример того, как может выглядеть соответствующая строка в pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             postgres                                md5

После внесения изменений в pg_hba.conf вам необходимо перезапустить сервер PostgreSQL, чтобы изменения вступили в силу.

Метод 4: переустановка PostgreSQL
Если ни один из вышеперечисленных способов не помог, попробуйте переустановить PostgreSQL. Это позволит воссоздать роль postgres и связанные с ней разрешения.