Используйте пользователя операционной системы postgres
для создания вашей базы данных - если вы не настроили роль базы данных с необходимыми привилегиями, соответствующими пользователю вашей операционной системы с тем же именем ( h9uest
в вашем случае):
sudo -u postgres -i
Как рекомендуется здесь или здесь .
Тогда попробуйте еще раз. Введите, exit
когда закончите с работой в качестве системного пользователя postgres
.
Или выполнить одну команду , createuser
как postgres
с sudo
, как продемонстрировано Дреес в другом ответе.
Смысл в том, чтобы использовать пользователя операционной системы, совпадающего с ролью базы данных с тем же именем, для предоставления доступа через ident
аутентификацию . postgres
пользователь операционной системы по умолчанию, инициализировавший кластер базы данных. Руководство:
Для начальной загрузки системы базы данных, недавно инициализированная система всегда содержит одну предопределенную роль. Эта роль всегда является «суперпользователем», и по умолчанию (если она не изменялась при запуске initdb
) она будет иметь то же имя, что и пользователь операционной системы, который инициализировал кластер базы данных. Обычно эта роль будет названа postgres
. Чтобы создать больше ролей, сначала необходимо подключиться к этой начальной роли.
Я слышал о странных настройках с нестандартными именами пользователей или о том, где пользователь операционной системы не существует. Вам нужно будет адаптировать свою стратегию там.
Читайте о ролях базы данных и аутентификации клиента в руководстве.
FATAL: role "user" is not permitted to log in
, проверить dba.stackexchange.com/questions/57723/... для этого.