См. Git gist с инструкциями здесь
Запустите это:
sudo -u postgres psql
ИЛИ
psql -U postgres
в вашем терминале, чтобы попасть в postgres
NB: если вы работаете на Mac и обе команды выше не удалось, перейдите к разделу о Mac ниже.
postgres=
Бегать
CREATE USER new_username;
Примечание. Замените new_username пользователем, которого вы хотите создать, в вашем случае это будет tom.
postgres=
CREATE ROLE
Поскольку вы хотите, чтобы этот пользователь мог создавать БД, вам необходимо изменить роль на суперпользователя.
postgres=
ALTER ROLE
Чтобы подтвердить, что все прошло успешно,
postgres=
List of roles
Role name | Attributes | Member of
new_username | Superuser, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
root | Superuser, Create role, Create DB | {}
postgres=
Обновление / модификация (для Mac):
Недавно я столкнулся с аналогичной ошибкой на своем Mac:
psql: FATAL: role "postgres" does not exist
Это произошло потому, что моя установка была настроена с суперпользователем базы данных, имя роли которого совпадает с вашим (коротким) именем для входа.
Но некоторые сценарии Linux предполагают, что суперпользователь имеет традиционное имя роли postgres
Как я решил это?
Если вы установили с homebrew
запуском:
/usr/local/opt/postgres/bin/createuser -s postgres
Если вы используете конкретную версию postgres, скажите, 10.5
затем запустите:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s postgres
ИЛИ:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s new_username
ИЛИ:
/usr/local/opt/postgresql@11/bin/createuser -s postgres
Если вы установили postgres.app
для Mac, запустите:
/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres
PS: замените 10.5 своей версией PostgreSQL