Цель урока: Получить общее представление о второй по популярности реляционной СУБД с открытым исходным кодом - 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

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)