Назад к блогу
27 января 2026Руководства

Как установить PostgreSQL на Linux сервер

Полное руководство по установке, настройке и защите сервера базы данных PostgreSQL на Ubuntu и CentOS.

Как установить PostgreSQL на Linux сервер

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

Установка PostgreSQL на Ubuntu/Debian

PostgreSQL доступен в стандартных репозиториях. Установите последнюю версию:

bash
sudo apt update
sudo apt install postgresql postgresql-contrib -y

# Запустите и включите PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Проверьте установку
sudo systemctl status postgresql
psql --version

Установка PostgreSQL на RHEL / CentOS / AlmaLinux / Rocky Linux

Для дистрибутивов на основе RHEL сначала нужно добавить репозиторий PostgreSQL:

bash
# Установите репозиторий PostgreSQL
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Для CentOS 8/Rocky Linux 8 используйте:
# sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Установите PostgreSQL
sudo dnf install -y postgresql15-server postgresql15

# Инициализируйте базу данных
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# Запустите и включите PostgreSQL
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

# Проверьте установку
sudo systemctl status postgresql-15
psql --version

Проверка установки

bash
# Проверьте статус PostgreSQL
sudo systemctl status postgresql

# Проверьте версию PostgreSQL
psql --version

# Подключитесь к PostgreSQL (Ubuntu/Debian)
sudo -u postgres psql

# Подключитесь к PostgreSQL (CentOS/RHEL)
sudo -u postgres psql -d postgres

Защита PostgreSQL

Установите пароль для пользователя postgres:

bash
# Подключитесь к PostgreSQL
sudo -u postgres psql

# Установите пароль для пользователя postgres
ALTER USER postgres PASSWORD 'your_strong_password';

# Выйдите из PostgreSQL
\q

Создание базы данных и пользователя

bash
# Подключитесь как пользователь postgres
sudo -u postgres psql

# Создайте базу данных
CREATE DATABASE myapp_db;

# Создайте пользователя
CREATE USER app_user WITH PASSWORD 'strong_password';

# Предоставьте привилегии
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO app_user;

# Выйдите
\q

Управление пользователями

bash
# Подключитесь к PostgreSQL
sudo -u postgres psql

# Список всех пользователей
\du

# Создайте нового пользователя
CREATE USER newuser WITH PASSWORD 'password';

# Предоставьте привилегии
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO newuser;

# Отзовите привилегии
REVOKE ALL PRIVILEGES ON DATABASE myapp_db FROM newuser;

# Удалите пользователя
DROP USER newuser;

Включение удаленных подключений

Чтобы разрешить удаленные подключения, отредактируйте файлы конфигурации PostgreSQL:

bash
# Отредактируйте pg_hba.conf (Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/pg_hba.conf

# Отредактируйте pg_hba.conf (CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/pg_hba.conf

# Добавьте строку:
host    all             all             0.0.0.0/0               md5

# Отредактируйте postgresql.conf (Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/postgresql.conf

# Отредактируйте postgresql.conf (CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/postgresql.conf

# Измените:
listen_addresses = '*'

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

Основные команды PostgreSQL

bash
# Подключитесь к базе данных
psql -U app_user -d myapp_db

# Список баз данных
\l

# Подключитесь к базе данных
\c database_name

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

# Описание таблицы
\d table_name

# Выполните SQL файл
psql -U app_user -d myapp_db -f script.sql

# Резервная копия базы данных
pg_dump -U app_user myapp_db > backup.sql

# Восстановление базы данных
psql -U app_user -d myapp_db < backup.sql

Полезные советы

  • Всегда используйте надежные пароли для пользователей базы данных
  • Ограничьте удаленный доступ конкретными IP-адресами в pg_hba.conf
  • Регулярно создавайте резервные копии баз данных с помощью pg_dump
  • Мониторьте логи PostgreSQL: /var/log/postgresql/ (Ubuntu) или /var/lib/pgsql/15/data/log/ (CentOS)
  • Используйте пул соединений (pgBouncer) для высоконагруженных приложений
  • Поддерживайте PostgreSQL в актуальном состоянии для получения обновлений безопасности