Как создать базу данных PostgreSQL: CREATE DATABASE
PostgreSQL часто выбирают за надежность, масштабируемость и соответствие стандартам SQL. Но какой бы мощной ни была СУБД, знакомство с ней всегда начинается с одного и того же — с создания базы данных (БД).
В этой статье на конкретных примерах разберем, как создать базу через командную строку с помощью psql, какие параметры стоит задавать сразу, а также покажем альтернативный способ — через графический интерфейс pgAdmin. Материал актуален для PostgreSQL версий 14, 15, 16 и новее.

Подготовка к созданию базы данных
На этапе подготовки нужно установить сервер PostgreSQL и настроить доступ к нему. Предлагаем алгоритмы для разных операционных систем.
Организация данных в PostgreSQL
Установка PostgreSQL
Процесс установки зависит от операционной системы (ОС). Коротко делимся основными моментами.
Linux (Debian/Ubuntu)
Лучше действовать через пакетный менеджер apt. Сначала обновите систему с помощью команд:
Установите вспомогательные пакеты:
Добавьте официальный GPG-ключ:
Добавьте репозиторий:
Обновите список пакетов на устройстве:
Установите сервер PostgreSQL:
Проверьте статус службы:
Подключитесь к серверу:
Проверьте установленную версию:
По умолчанию служба после установки запускается автоматически. Сразу создаются кластер базы данных и системный пользователь postgres.
Установка PostgreSQL на Windows
Установка выполняется через установщик от EnterpriseDB, который можно скачать на официальном сайте PostgreSQL. Что делать дальше:
Запустите .exe файл и укажите каталог установки.
Определите каталог хранения данных.
Придумайте сложный пароль для пользователя postgres.
Укажите порт — по умолчанию 5432.
Выберите локаль и завершите установку.
Откройте окно служб и убедитесь, что PostgreSQL создана и запущена:
Откройте PowerShell и выполните:
Установка PostgreSQL на macOS
Разберем рекомендуемый способ — через Homebrew. Сначала выполните обновление:
Установите PostgreSQL:
Запустите службу с помощью команды:
Проверьте установку и подключитесь к службе:
Настройка доступа
В PostgreSQL управление доступом выполняется через роли, систему привилегий и настройки конфигурационного файла аутентификации — pg_hba.conf. Сначала нужно задать роль с правом входа, а после создания базы данных назначить права на объекты и настроить правила подключения к БД.
Войдите в систему от имени пользователя postgres. Команда для Linux:
Для Windows и macOS:
Создайте роль с правом подключения к базе данных:
Создайте базу данных и назначьте владельца:
Подключитесь к базе с помощью команды:
Предоставьте созданному пользователю необходимые права доступа:
Если в базе есть таблицы, назначайте права с помощью команды типа:
Если хотите, чтобы назначенные права автоматически применялись к создаваемым таблицам, выполните:
Настройте в файле pg_hba.conf правила аутентификации. Сначала установите расположение файла:
Добавьте в файл подобную запись со своими настройками:
Здесь указаны тип подключения, созданная база данных, пользователь, IP-адрес и метод аутентификации. В качестве последнего официальная документация СУБД рекомендует использовать scram-sha-256.
После внесения изменений в файл примените настройки:
Для проверки назначенных прав доступа и других настроек выполните команду:
Основы команды CREATE DATABASE
Для создания новой базы данных PostgreSQL применяется команда CREATE DATABASE. Посмотрим ее синтаксис и ключевые параметры.
Синтаксис команды
Базовый синтаксис команды выглядит так:
Синтаксис с указанием параметров:
По умолчанию при создании базы данных сразу задается владелец, который и совершает действия. Это может быть суперпользователь либо пользователь с правом CREATEDB.
Если хотите создать базу данных, но не уверены, что нет другой базы с таким же именем, выполните конструкцию с функцией проверки:
Основные параметры
В предыдущем разделе есть пример команд с опциями. Например, OWNER задает владельца базы данных, который получит полные права на управление. Команда с таким параметром:
Параметр TEMPLATE задает шаблон для создания базы. По умолчанию в PostgreSQL каждая новая БД создается путем копирования существующей. По умолчанию применяется параметр template1. Чтобы создать чистую базу данных и изменить кодировку, используется template0. Пример:
Кодировку базы данных и способ хранения текстовой информации задает параметр ENCODING. Почти всегда используются UTF8:
Локализацией управляют параметры LC_COLLATE и LC_CTYPE. LC_COLLATE отвечает за правила сортировки строк, LC_CTYPE — за классификацию символов:
Параметр TABLESPACE определяет пространство, где будут храниться файлы базы данных. По умолчанию применяется pg_default:
Параметр ALLOW_CONNECTIONS определяет возможность локального и удаленного доступа к базе данных. Пример, когда БД создается, но подключаться к ней нельзя:
Параметр CONNECTION LIMIT указывает на количество одновременных подключений к базе данных:
Пример команды с ключевыми параметрами:
Создание базы данных через командную строку
Можно создавать базу данных PostgreSQL с помощью стандартных инструментов из командной строки. Приводим подробное описание процесса через консольную утилиту.
Использование psql
Через утилиту psql можно выполнять стандартные SQL-команды, в том числе и для создания базы данных. Для этого откройте терминал операционной системы и подключитесь к серверу PostgreSQL:
Расшифровываем команду:
-U — имя пользователя базы данных;
-h — адрес сервера. В примере это localhost;
-p — порт подключения;
-d — имя БД для подключения. Обычно это postgres.
После подключения к серверу выполните стандартную команду для создания базы данных:
Если хотите создать базу данных вне интерактивного режима, выполните:
Примеры создания баз данных с разными параметрами
Создание базы данных с одновременным назначением владельца:
Создание с указанием кодировки:
Создание БД с указанием шаблона:
Создание с указанием локали:
Создание базы данных с ограничением на количество одновременных подключений:
Создание базы данных через pgAdmin
Чтобы не использовать командную строку, можно создать базу данных через графический интерфейс pgAdmin. Вы получите доступ к серверу PostgreSQL, настройкам и управлению пользователями.
Создание базы данныхУстановка и подключение
Скачайте установочный пакет с официального сайта pgAdmin. Запустите установку по инструкции. После откроется окно с интерфейсом pgAdmin. Дальше действуйте так:
На левой панели найдите раздел Servers, выберите в нем Register → Server.
Откройте вкладку General, укажите произвольное имя подключения.
Во вкладке Connection укажите адрес сервера (Host name/address), владельца базы данных (Maintenance database), имя пользователя (Username) и пароль (Password).
Затем нажмите Save. После этого сервер PostgreSQL появится в настройках интерфейса, и с ним можно будет работать.
Пошаговое создание базы данных
Через интерфейс откройте подключенный сервер, перейдите в Databases, выберите Create → Database. Откроется окно создания новой базы данных.
Во вкладке General введите имя базы данных и владельца, которого можно выбрать из существующих пользователей.
Во вкладке Definition укажите кодировку, шаблон базы данных, параметры локалей и лимиты на максимальное число подключений. В Security настройте права доступа для пользователей.
Управление базами данных
Управление может включать изменения параметров и удаление базы данных. Разберем основные команды и нюансы их выполнения.
Изменение параметров базы данных
Для изменения свойств существующей базы данных используется команда ALTER DATABASE. Выполнять ее может владелец базы данных или суперпользователь. Общий синтаксис команды выглядит так:
Если хотите изменить владельца базы данных, выполните такую команду:
Чтобы поменять имя базы данных:
Чтобы изменить лимит одновременных подключений, выполните:
Команда, которая позволит изменить конфигурацию для конкретной базы данных:
Изменение параметров через ALTER DATABASE ... SET ... вступает в силу только для новых подключений. Уже активные сессии не увидят новое значение параметра до переподключения.
Учитывайте, что локаль и кодировку после создания базы данных изменить не получится. Переименование БД возможно только тогда, когда нет активных подключений.
Удаление базы данных
Для удаления применяется команда DROP DATABASE, которую может выполнять суперпользователь или владелец базы данных. Базовый синтаксис выглядит:
Пример с именем базы данных:
Чтобы избежать ошибки, применяя команду к несуществующей базе данных, добавьте опцию IF EXISTS:
Перед выполнением команды завершите активные подключения к базе данных, иначе удалить объект не получится. Также учитывайте, что DROP DATABASE безвозвратно удаляет не только БД, но и каталог и все данные. Чтобы избежать потери важной информации, перед выполнением команды сделайте резервную копию базы.
Советы и рекомендации
К управлению базами данных PostgreSQL нужно подходить комплексно. Обязательные меры, которые нужно предпринять для безопасности и организации рутинных процессов:
Регулярное резервное копирование — для копирования отдельных баз данных можно использовать утилиту pg_dump, для всех в кластере — pg_dumpall.
Тестирование восстановления — необходимо отработать механизм восстановления данных из резервных копий. Это можно делать на тестовом сервере с помощью pg_restore.
Контроль прав доступа — назначайте пользователям только необходимые полномочия для работы с данными. Не используйте аккаунт суперпользователя для рутинных задач.
Ограничение количества подключений — настройте параметр CONNECTION LIMIT для предотвращения перегрузки сервера и облегчения контроля работы пользователей.
Мониторинг состояния сервера — отслеживайте активные подключения, случаи блокировок и длительные запросы через системные представления, например pg_stat_activity.
Обновление версий — регулярно устанавливайте новые версии PostgreSQL для получения исправлений безопасности и ошибок.
Разделение сред — используйте отдельные серверы или кластеры для разработки, тестирования и продакшена, чтобы снизить риски случайных изменений важных данных.
Документирование конфигурации — фиксируйте ключевые параметры сервера, схемы резервного копирования и политики доступа, чтобы обеспечить прозрачность администрирования.
Для удобства и безопасности настройте автоматическое резервное копирование по расписанию. Копии храните в зашифрованном виде в физическом или облачном хранилище.
Для удобства даем таблицу-шпаргалку с основными командами, которые пригодятся в работе с базами данных:
Команда | Назначение | Пример использования |
CREATE DATABASE | Создание новой базы данных | CREATE DATABASE mydb; |
CREATE DATABASE ... OWNER | Создание БД с указанием владельца | CREATE DATABASE mydb OWNER app_user; |
CREATE DATABASE ... TEMPLATE template0 | Создание БД из чистого шаблона | CREATE DATABASE mydb TEMPLATE template0; |
CREATE DATABASE ... ENCODING 'UTF8' | Указание кодировки | CREATE DATABASE mydb ENCODING 'UTF8'; |
CREATE DATABASE ... LC_COLLATE / LC_CTYPE | Настройка локали и сортировки | CREATE DATABASE mydb LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8' TEMPLATE template0; |
CREATE DATABASE ... CONNECTION LIMIT | Ограничение числа подключений | CREATE DATABASE mydb CONNECTION LIMIT 50; |
CREATE ROLE | Создание пользователя (роли) | CREATE ROLE app_user LOGIN PASSWORD 'StrongPassword123'; |
GRANT | Назначение прав доступа | GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA public TO app_user; |
ALTER DEFAULT PRIVILEGES | Права по умолчанию для новых объектов | ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO app_user; |
\c имя_базы | Подключение к базе в psql | \c app_db |
psql -U user -d db | Подключение к базе через CLI | psql -U app_user -d app_db -h localhost |
ALTER DATABASE | Изменение параметров БД | ALTER DATABASE mydb CONNECTION LIMIT 100; |
ALTER DATABASE ... OWNER TO | Смена владельца базы данных | ALTER DATABASE mydb OWNER TO new_owner; |
ALTER DATABASE ... RENAME TO | Переименование БД | ALTER DATABASE mydb RENAME TO new_name; (требует отсутствия активных подключений) |
DROP DATABASE | Удаление базы данных | DROP DATABASE mydb; |
DROP DATABASE IF EXISTS | Удаление без ошибки, если БД нет | DROP DATABASE IF EXISTS mydb; |
SHOW hba_file; | Показать путь к pg_hba.conf | SHOW hba_file; |
SELECT pg_reload_conf(); | Перезагрузка конфигурации | SELECT pg_reload_conf(); |
pg_dump | Резервное копирование одной БД | pg_dump mydb > backup.sql |
pg_dumpall | Резервное копирование всего кластера | pg_dumpall > all_backup.sql |
pg_restore | Восстановление из резервной копии | pg_restore -d mydb backup.dump |
После отработки команд на локальной машине полезно попробовать развернуть базу в условиях, приближенных к боевым. Например, в сервисе Evolution Managed PostgreSQL от Cloud.ru — там управление кластером, масштабирование и регулярные бэкапы настраиваются через понятный интерфейс или API. Это хороший способ закрепить навыки администрирования и сразу перейти к реальной разработке без головной боли с железом.
Заключение
PostgreSQL предоставляет разные инструменты для создания администрирования баз данных. Вы можете работать через графический интерфейс pgAdmin или консоль psql. Предварительно разберитесь в архитектуре системы, ролях и полномочиях пользователей, шаблонах баз данных и настройках доступа. Обладая этими знаниями вы сможете выстроить управляемую и прозрачную инфраструктуру.

