Как установить и использовать PostgreSQL на Ubuntu

Протестировано
Ubuntu: 24.04 LTS
PostgreSQL: 18

PostgreSQL (или просто Postgres) — это мощная, открытая реляционная база данных, которая сочетает в себе возможности документоориентированных систем. Она расширяет язык SQL, предлагая широкий спектр функций для безопасного хранения и управления данными. Postgres известна своей эффективностью, надежностью и масштабируемостью, что делает ее идеальным выбором для обработки больших объемов сложных данных в корпоративных средах с высокой отказоустойчивостью и строгим контролем целостности данных.

Среди ключевых преимуществ PostgreSQL — расширяемость: поддержка продвинутой индексации, полнотекстового поиска и API для разработки собственных решений. В этой статье мы подробно разберем, как установить PostgreSQL 18 на сервер Ubuntu 24.04 LTS, и изучим основные способы ее эффективного использования. Это руководство подойдет как новичкам, так и опытным администраторам, ищущим актуальную информацию по установке PostgreSQL 18 на Ubuntu.




Установка PostgreSQL 18 на Ubuntu

PostgreSQL по умолчанию входит в репозитории Ubuntu, но версия в них фиксирована на протяжении всего жизненного цикла релиза. Для доступа к свежим обновлениям, включая PostgreSQL 18, рекомендуется использовать официальный репозиторий PostgreSQL.

Сначала установите необходимые пакеты и настройте репозиторий с помощью скрипта:

Bash
sudo apt install -y postgresql-common ca-certificates
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

Затем обновите список пакетов и установите PostgreSQL 18:

Bash
sudo apt update
sudo apt install postgresql-18 postgresql-contrib-18

Установка PostgreSQL 18 в Ubuntu — простой процесс через официальный репозиторий.

После установки служба PostgreSQL запустится автоматически. Проверьте ее статус:

Bash
sudo systemctl status postgresql

Чтобы PostgreSQL стартовала при загрузке системы:

Bash
sudo systemctl enable postgresql

Это базовая установка PostgreSQL на Ubuntu 24.04. Теперь перейдем к графическому инструменту для управления.


Установка pgAdmin 4 для администрирования PostgreSQL

Для удобного управления базами данных через веб-интерфейс установите pgAdmin 4 — официальный инструмент PostgreSQL. Он позволяет работать с базами, пользователями и запросами в удобном дашборде.

pgAdmin 4 отсутствует в стандартных репозиториях Ubuntu 24.04, поэтому добавьте официальный репозиторий:

Bash
sudo apt install -y curl ca-certificates gnupg
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'

Установите pgAdmin 4 в зависимости от нужного режима:

  • Для десктопного и веб-режима: sudo apt install pgadmin4
  • Только десктоп: sudo apt install pgadmin4-desktop
  • Только веб: sudo apt install pgadmin4-web

Для веб-режима настройте сервер:

Bash
sudo /usr/pgadmin4/bin/setup-web.sh

После этого откройте pgAdmin в браузере по адресу: http://127.0.0.1/pgadmin4.

pgAdmin 4 — удобный инструмент для управления PostgreSQL на Ubuntu.

Настройка ролей и баз данных в PostgreSQL

Аутентификация в PostgreSQL управляется файлом /etc/postgresql/18/main/pg_hba.conf. По умолчанию используется метод «peer» для локальных подключений, где имя пользователя ОС проверяется на соответствие имени пользователя базы.

Во время установки создается системный пользователь postgres без пароля — это администратор по умолчанию.

Откройте файл для редактирования:

Bash
sudo nano /etc/postgresql/18/main/pg_hba.conf

Понимание ролей в PostgreSQL

Роли в PostgreSQL — это гибкий механизм управления доступом. Роль может быть пользователем или группой, не связанной напрямую с пользователями ОС, но использующей их для аутентификации.

Роли могут:

  • Владеть объектами (таблицами, функциями).
  • Назначать привилегии другим ролям.
  • Наследовать членство в других ролях.

Включение шифрованных паролей для ролей

Для безопасной аутентификации измените метод на scram-sha-256 (рекомендуется) или md5. В файле pg_hba.conf найдите строки:

INI
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     peer

Измените на:

INI
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             postgres                                peer
local   all             all                                     scram-sha-256

Настройка шифрованных паролей в PostgreSQL для повышения безопасности.

Перезапустите службу:

Bash
sudo systemctl restart postgresql

Основы использования PostgreSQL на Ubuntu

Доступ к shell PostgreSQL через пользователя postgres:

Bash
sudo -i -u postgres
psql

Или напрямую:

Bash
sudo -u postgres psql

Выход: \q или Ctrl+D.

Вход в систему PostgreSQL через учетную запись postgres.

Создание ролей в PostgreSQL

Создайте роль:

Bash
CREATE ROLE testrole;

С атрибутом LOGIN (пользователь):

Bash
CREATE ROLE testrole LOGIN;

Или с паролем:

Bash
CREATE USER testrole WITH PASSWORD 'secure_password_here';

С суперпривилегиями:

Bash
CREATE ROLE admin WITH LOGIN PASSWORD 'admin_password' SUPERUSER;

С правом создания баз:

Bash
CREATE ROLE developer WITH LOGIN PASSWORD 'dev_password' CREATEDB;

Список и модификация ролей

Список ролей: \du или SELECT rolname FROM pg_roles;

Изменение пароля: ALTER ROLE testrole WITH PASSWORD 'new_password';

Добавление суперпривилегий: ALTER ROLE testrole WITH SUPERUSER;

Удаление роли: DROP ROLE testrole; (сначала удалите зависимые объекты).

Создание базы данных

Bash
CREATE DATABASE testbase OWNER testrole ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8';

Назначьте привилегии:

Bash
GRANT ALL PRIVILEGES ON DATABASE testbase TO testrole;

Подключитесь: psql -U testrole -d testbase


Работа с таблицами в PostgreSQL

Создайте таблицу:

SQL
CREATE TABLE authors (
    code      SERIAL PRIMARY KEY,
    name      VARCHAR(40) NOT NULL,
    city      VARCHAR(40) NOT NULL,
    joined_on DATE NOT NULL
);

Вставьте данные:

SQL
INSERT INTO authors (name, city, joined_on) VALUES 
    ('Ravi Saive', 'Mumbai', '2012-08-15'),
    ('Aaron Kili', 'Nairobi', '2014-03-20'),
    ('Matei Cezar', 'Bucharest', '2015-06-10');

Запросите данные: SELECT * FROM authors;

С фильтром: SELECT * FROM authors WHERE city = 'Mumbai';

Обновите: UPDATE authors SET city = 'Delhi' WHERE name = 'Ravi Saive';

Удалите: DELETE FROM authors WHERE name = 'Ravi Saive';

Работа с таблицами в PostgreSQL — вставка и запрос данных.

Список таблиц: \dt

Структура: \d authors

Изменение: ALTER TABLE authors ADD COLUMN email VARCHAR(100);

Удаление таблицы: DROP TABLE authors;


Список и удаление баз данных

Список: \l или SELECT datname FROM pg_database;

Удаление: DROP DATABASE tecmint;

Переключение: \c tecmint


Настройка удаленного доступа к PostgreSQL

По умолчанию только локальные подключения. Откройте /etc/postgresql/18/main/postgresql.conf:

INI
listen_addresses = '*'

В pg_hba.conf добавьте:

INI
host    all             all             192.168.1.0/24          scram-sha-256

Или для всех IP: 0.0.0.0/0.

Разрешите порт в firewall: sudo ufw allow 5432/tcp

Перезапустите: sudo systemctl restart postgresql

Разрешение удаленных подключений в PostgreSQL на Ubuntu.

Оптимизация производительности PostgreSQL

В /etc/postgresql/18/main/postgresql.conf настройте:

INI
shared_buffers = 256MB
effective_cache_size = 1GB
maintenance_work_mem = 64MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 4MB

Перезапустите службу.


Резервное копирование и восстановление

Бэкап базы: pg_dump -U postgres testdb > testdb_backup.sql

Все базы: pg_dumpall -U postgres > all_databases_backup.sql

Восстановление: psql -U postgres testdb < testdb_backup.sql

Резервное копирование баз данных PostgreSQL — ключ к безопасности данных.

Полезные команды PostgreSQL

  • \l: Список баз
  • \c dbname: Подключение к базе
  • \dt: Список таблиц
  • \d tablename: Структура таблицы
  • \du: Список ролей
  • \q: Выход

Заключение

В этой статье мы подробно разобрали установку PostgreSQL на Ubuntu LTS, настройку ролей, работу с базами и таблицами, оптимизацию и бэкапы. PostgreSQL — надежный инструмент для разработчиков и администраторов. Для углубленного изучения обратитесь к официальной документации PostgreSQL.

Если у вас есть вопросы по установке PostgreSQL на Ubuntu или использованию, оставьте комментарий ниже. Поделитесь статьей, если она была полезна!


Читайте также

Было ли это полезно?

0 / 0

Добавить комментарий 0