Ошибки

PostgreSQL: FATAL: database does not exist

Базы с таким именем на сервере нет. Если имя базы не указано, psql берёт имя пользователя: команда psql -U ivan ищет базу ivan. Укажите имя базы последним словом команды или создайте базу.

≈ 4 мин чтения3 шага
Содержание 8

Как выглядит ошибка

psql: error: connection to server at "127.0.0.1", port 5432 failed: FATAL:  database "ivan" does not exist
  • database "ivan" — имя базы, к которой подключался psql.
  • does not exist — базы с таким именем на сервере нет.

Если имя базы не указано, psql подставляет имя пользователя. Команда psql -h 127.0.0.1 -U ivan ищет базу ivan, а база сайта может называться иначе, например shop.

Шаг 1. Укажите имя базы

psql -h 127.0.0.1 -U ivan shop

Имя базы — последнее слово команды. Если ошибку показывает сайт, проверьте имя базы в его настройках: оно указывается отдельно от имени пользователя.

Шаг 2. Посмотрите список баз

Команды вводятся на сервере с базой: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне. Войдите в базу администратором:

sudo -u postgres psql

Команда открывает psql — программу для работы с базой — от имени администратора базы postgres. Если система спросит пароль, введите пароль своего пользователя на сервере, а не пароль базы. Символы при вводе не видны — наберите пароль и нажмите Enter. Строка ввода сменится на postgres=#: теперь можно вводить команды для базы. Каждая команда SQL заканчивается точкой с запятой. Выйти — \q. Затем введите:

\l

Команда покажет базы на сервере и их владельцев. Если нужной базы в списке нет — создайте её.

Имена без кавычек база приводит к строчным буквам: команда CREATE DATABASE Shop создаст базу shop. Если в списке имя с заглавными буквами, в psql пишите его точно так же.

Шаг 3. Создайте базу

В том же окне psql, где строка ввода postgres=#, выполните команду. Вместо shop подставьте имя базы, вместо ivan — пользователя сайта:

CREATE DATABASE shop OWNER ivan;

Слова OWNER ivan делают пользователя сайта владельцем базы: в своей базе он может создавать таблицы. Без них владельцем станет тот, кто выполнил команду, — postgres, и сайту не хватит прав: появится ошибка permission denied for schema public.

Если пользователя ivan ещё нет, сначала создайте его — пользователь и база для сайта. Выйдите командой \q и проверьте вход:

psql -h 127.0.0.1 -U ivan shop

Если ошибка permission denied for database

FATAL:  permission denied for database "shop"
DETAIL:  User does not have CONNECT privilege.

База есть, но пользователю запрещено к ней подключаться. Право подключаться по умолчанию есть у всех пользователей — значит, его кто-то отозвал. Верните право из sudo -u postgres psql:

GRANT CONNECT ON DATABASE shop TO ivan;

Ошибки рядом

Что видитеЧто делать
FATAL: role "ivan" does not existтакого пользователя в базе нет
ERROR: permission denied for schema publicпользователю не хватает прав в базе
connection to server at … failed: Connection refusedбаза не принимает подключения

Источники

Сверено 14 октября 2026 года.

Что почитать дальше