
Цель урока: Получить общее представление о второй по популярности реляционной СУБД с открытым исходным кодом - PostgreSQL (часто произносят "Постгрес"). Мы установим его, разберем ключевые идеологические отличия в управлении пользователями и доступом, и выполним те же базовые операции, что и в MariaDB: создадим базу, пользователя и подключимся к консоли.
Часть 1: Теория. Почему PostgreSQL? В чем его философия?
Если MariaDB/MySQL можно сравнить с быстрым и универсальным легковым автомобилем, то PostgreSQL - это скорее надежный и мощный грузовик. Он может быть чуть сложнее в первоначальной настройке, но предлагает больше возможностей для сложных задач и строже следит за правилами.
Ключевые отличия от MySQL/MariaDB:
-
Строгость и соответствие стандартам: PostgreSQL известен своим очень строгим следованием стандартам языка SQL. Он реже прощает "вольности" в запросах, что заставляет писать более корректный код, но и защищает от неочевидных ошибок.
-
Расширяемость: PostgreSQL - это объектно-реляционная СУБД. Это означает, что вы можете создавать свои собственные типы данных, функции и операторы. Он невероятно гибок для сложных, нестандартных задач. В нем "из коробки" есть типы данных для работы с геометрией (PostGIS), JSONB для эффективного хранения JSON-документов, массивы и многое другое.
-
Управление пользователями и доступом: Это самое главное отличие, которое мы увидим на практике.
-
В MySQL/MariaDB: Пользователь (user) - это глобальная сущность. Вы создаете пользователя, а потом выдаете ему права (GRANT) на разные базы.
-
В PostgreSQL: Система пользователей тесно интегрирована с системными пользователями Linux. По умолчанию для подключения к PostgreSQL используется так называемая "доверительная" (peer) аутентификация. Это означает, что PostgreSQL "верит", что если вы зашли в систему сервера как пользователь root, то вы имеете право подключиться к базе данных от имени пользователя postgres (аналог root в мире PostgreSQL) без пароля.
-
Терминология:
-
Вместо SHOW DATABASES; в PostgreSQL используется мета-команда \l.
-
Вместо USE my_database; используется \c my_database.
-
Все "мета-команды" в консоли psql начинаются с обратного слэша \.
Когда часто выбирают PostgreSQL?
-
Для сложных аналитических систем и хранилищ данных.
-
Для приложений, где требуется строгая целостность данных и соответствие стандартам.
-
Для работы с геоданными (карты, логистика).
-
Когда нужна гибкость нестандартных типов данных.
Часть 2: Практика. Установка и первое подключение
Шаг 1: Установка PostgreSQL
apt update
apt install -y postgresql postgresql-client
После установки служба postgresql запустится автоматически.
Шаг 2: Первое подключение. Магия peer аутентификации
Во время установки создается системный пользователь Linux с именем postgres, и для него настраивается одноименный пользователь внутри СУБД с правами суперпользователя.
Вы не можете просто так взять и подключиться к PostgreSQL от своего имени (root). По умолчанию он вас не пустит. Чтобы получить административный доступ, нужно сначала стать системным пользователем postgres.
Для этого используется команда sudo с ключами -i и -u.
-
-i: Симулировать полноценный вход в систему (с загрузкой окружения).
-
-u postgres: От имени пользователя postgres.
# Становимся пользователем postgres
sudo -i -u postgres
Ваша командная строка изменится и будет выглядеть примерно так: postgres@your-server:~$. Теперь вы - пользователь postgres.
Шаг 3: Вход в консоль psql
Теперь, будучи пользователем postgres, вы можете войти в консоль PostgreSQL (psql) без пароля.
psql
Командная строка изменится на postgres=#. Это аналог MariaDB [(none)]>, но со знаком #, который указывает на права суперпользователя.
Часть 3: Практика. Базовые операции
Все команды внутри psql (кроме мета-команд) должны заканчиваться на ;.
Шаг 1: Просмотр списка баз данных
Используем мета-команду \l (list).
\l

Шаг 2: Создание нового пользователя (роли)
В PostgreSQL понятие "пользователь" - это частный случай более общего понятия "роль".
Давайте создадим роль my_website_user с паролем.
CREATE ROLE my_website_user WITH LOGIN PASSWORD 'a_very_strong_password';
-
CREATE ROLE: Создать роль.
-
WITH LOGIN: Указать, что эта роль сможет входить в систему.
-
PASSWORD '...': Задать пароль.
Шаг 3: Создание новой базы данных
Создадим базу my_website_db и сразу укажем, что ее владельцем будет наш новый пользователь. Это элегантный способ сразу выдать все права.
CREATE DATABASE my_website_db OWNER my_website_user;
Шаг 4: Выход из консоли и возврат к root
Выходим из psql:
\q
Теперь вы снова в сессии пользователя postgres. Чтобы вернуться к root, просто выполните:
exitШаг 5: Проверка подключения под новым пользователем
psql -h [хост] -U [пользователь] -d [база_данных]
psql -h localhost -U my_website_user -d my_website_db
-
-h localhost: Явно указываем, что подключаемся к локальному серверу.
-
-U my_website_user: Имя пользователя.
-
-d my_website_db: База данных, к которой мы хотим подключиться.
Система запросит пароль, который был указан. Если все верно, вы войдете в консоль, и приглашение будет выглядеть как my_website_db=>. Успех!
Часть 4: Заключение
Сегодня мы совершили экспресс-экскурсию в мир PostgreSQL. Главная цель этого урока - не сделать вас экспертом по "Постгресу", а показать, что мир баз данных не ограничивается MySQL, и что существуют другие, очень мощные инструменты со своей собственной философией.
Вы научились:
-
Понимать ключевые идеологические отличия PostgreSQL: строгость, расширяемость и особая модель аутентификации.
-
Устанавливать PostgreSQL и выполнять первое подключение через системного пользователя postgres.
-
Использовать консоль psql и ее мета-команды (\l, \c, \q).
-
Выполнять базовые операции: создание роли (пользователя) и базы данных.
Теперь, если в требованиях к какому-либо приложению вы увидите "требуется PostgreSQL", вы не испугаетесь. Вы будете знать базовые принципы и сможете найти дальнейшую информацию.
На следующем, 51-м уроке, мы вернемся к нашему основному стеку и добавим последний, но важнейший компонент для создания динамических сайтов - установим и настроим PHP.
Перейти к просмотру - УРОК №51.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

