Дивіться git gist з інструкціями тут
Запустіть це:
sudo -u postgres psql
АБО
psql -U postgres
у своєму терміналі, щоб потрапити в postgres
Примітка. Якщо ви працюєте на 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