#Что означает ошибка
database does not exist
База не создана или указано неверное имя. Создайте её командой CREATE DATABASE или проверьте строку подключения.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| База не создана | Имя базы действительно отсутствует в кластере. | Проверьте резервную копию и администратора, не создавайте пустую базу. |
| Опечатка | Имя содержит опечатку или регистр не совпадает. | Исправьте dbname в строке подключения. |
| Другой кластер | Подключение идёт к другому порту/кластеру. | Сверьте host/port и список баз. |
| Имя пользователя как БД | dbname не задан — используется имя пользователя. | Явно установите правильное имя базы. |
#Пошаговое решение
- Проверьте имя базы в подключенииПри
FATAL: database "name" does not existзапишите host, port, имя базы и пользователя из настроек приложения без пароля. PostgreSQL без параметраdbnameможет попытаться открыть базу с именем пользователя; проверьте, задано ли имя явно. - Подключитесь к существующей служебной базеНа машине, где установлен psql, выполните
psql -h ХОСТ -p 5432 -U ПОЛЬЗОВАТЕЛЬ -d postgresс фактическими адресом, портом и логином; пароль вводите только в защищённый запрос, не в аргументы команды. Внутри psql выполните\lдля списка баз, затем\qдля выхода. Если базы postgres нет, администратор укажет существующую административную базу. - Исправьте ошибку адреса или имениЕсли нужная база отображается в списке, исправьте
dbname/PGDATABASEв конфигурации приложения и проверьте порт именно того экземпляра. Смешение тестового и рабочего кластера часто приводит к ложному выводу об утрате данных. Не создавайте пустую одноимённую базу вместо прежней до проверки резервных копий. - Проверьте соединение с правильной базойПопробуйте
psql -h ХОСТ -p 5432 -U ПОЛЬЗОВАТЕЛЬ -d ИМЯ_БАЗЫс корректными значениями, затемSELECT current_database();. Если подключение успешно, повторите операцию приложения. При новой ошибке доступа смотрите роли отдельно; не выдавайте SUPERUSER ради подключения.
#Если проблема осталась
Если «PostgreSQL: FATAL: database "name" does not exist» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.