Как установить PostgreSQL на AlmaLinux 10?

PostgreSQL, или Postgres, – это бесплатная объектно-реляционная система управления базами данных с открытым исходным кодом для хранения данных. PostgreSQL – это мощная СУБД с различными функциями, такими как транзакции с атомарностью, согласованность, изоляция, долговечность, автоматическое обновление и т. д. Она совместима со многими операционными системами, такими как Windows, MacOS, FreeBSD и Linux. В следующих параграфах мы покажем вам, как установить систему управления базами данных PostgreSQL, управлять сервисом и использовать некоторые основные команды.

Установка PostgreSQL на AlmaLinux проста и может занять не более 10 минут. Давайте приступим!

Необходимые условия

  • Сервер под управлением AlmaLinux 10 или любой другой ОС Linux.
  • Привилегии пользователя: root или не root пользователь с привилегиями sudo

Обновление системы

Перед началом процесса установки системы баз данных PostgreSQL рекомендуется обновить системные пакеты до последних доступных версий. Для этого выполните следующую команду:

sudo dnf update -y && sudo dnf upgrade -y

Установите сервер баз данных PostgreSQL

Репозиторий PostgreSQL по умолчанию добавлен в последнюю версию ОС AlmaLinux 10. Чтобы установить последнюю версию PostgreSQL 16, выполните следующую команду:

sudo dnf install postgresql-server postgresql-contrib postgresql -y

После установки вы можете проверить версию PostgreSQL и убедиться, что PostgreSQL был успешно установлен. Для этого выполните следующую команду:

postgres --version

Вы должны получить следующий результат:

postgres --version
postgres (PostgreSQL) 16.4

Управление службой PostgreSQL

После успешной установки, чтобы запустить и включить PostgreSQL для автоматического запуска при загрузке системы, выполните следующую команду:

sudo systemctl start postgresql && sudo systemctl enable postgresql

Чтобы проверить состояние службы, можно воспользоваться следующей командой:

sudo systemctl status postgresql

Если все в порядке, вы получите вывод, подобный этому:

sudo systemctl status postgresql
● postgresql.service - PostgreSQL database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: disabled)
     Active: active (running) since Sun 2025-04-05 10:47:09 CDT; 41min ago
 Invocation: deb4221eaa0b447f94a583925e15fe4c
   Main PID: 1907 (postgres)
      Tasks: 7 (limit: 23175)
     Memory: 19.5M (peak: 22.4M)
        CPU: 647ms
     CGroup: /system.slice/postgresql.service
             ├─1907 /usr/bin/postgres -D /var/lib/pgsql/data
             ├─1909 "postgres: logger "
             ├─1910 "postgres: checkpointer "
             ├─1911 "postgres: background writer "
             ├─1913 "postgres: walwriter "
             ├─1914 "postgres: autovacuum launcher "
             └─1915 "postgres: logical replication launcher "
Apr 05 10:47:09 host.test.vps systemd[1]: Starting postgresql.service - PostgreSQL database server...
Apr 05 10:47:09 host.test.vps postgres[1907]: 2025-04-05 10:47:09.309 CDT [1907] LOG:  redirecting log output to logging collector process
Apr 05 10:47:09 host.test.vps postgres[1907]: 2025-04-05 10:47:09.309 CDT [1907] HINT:  Future log output will appear in directory "log".
Apr 05 10:47:09 host.test.vps systemd[1]: Started postgresql.service - PostgreSQL database server.

Остановить службу PostgreSQL можно с помощью:

sudo systemctl stop postgresql

Перезапустить службу можно с помощью:

sudo systemctl restart postgresql

Есть еще один способ проверить, запущен ли PostgreSQL на вашем сервере, – это проверить порт 5432, который является портом PostgreSQL по умолчанию:

netstat -tunlp | grep 5432

Поскольку с помощью предыдущей команды status мы уже знаем, что PostgreSQL успешно запущен, вы должны получить вывод, подобный этому:

[root@host ~]# netstat -tunlp | grep 5432
tcp6       0      0 ::1:5432                :::*                    LISTEN      1907/postgres

Консоль PostgreSQL

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

sudo -u postgres psql

После этой команды вы войдете в консоль PostgreSQL:

[root@host ~]# sudo -u postgres psql
psql (16.4)
Type "help" for help.
postgres=#

Чтобы создать базу данных нового пользователя и предоставить ему права доступа, выполните последовательно следующие команды:

CREATE DATABASE rhtestdb;
CREATE USER rhtestuser WITH ENCRYPTED PASSWORD 'YourStrongPasswordHere';
GRANT ALL PRIVILEGES ON DATABASE rhtestdb TO rhtestuser;

Во время выполнения вышеприведенной команды вы получите подтверждающие сообщения о создании Базы данных и пользователя, как показано на рисунке ниже:

postgres=# CREATE DATABASE rhtestdb;
CREATE DATABASE
postgres=# CREATE USER rhtestuser WITH ENCRYPTED PASSWORD 'YourStrongPasswordHere';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE rhtestdb TO rhtestuser;
GRANT
postgres=#

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

\l

Вы получите результат, подобный этому:

postgres=# \l
                                                    List of databases
   Name    |  Owner   | Encoding | Locale Provider | Collate |  Ctype  | ICU Locale | ICU Rules |    Access privileges    
-----------+----------+----------+-----------------+---------+---------+------------+-----------+-------------------------
 postgres  | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | 
 rhtestdb  | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =Tc/postgres           +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres  +
           |          |          |                 |         |         |            |           | rhtestuser=CTc/postgres
 template0 | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/postgres            +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/postgres            +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
(4 rows)
postgres=#

Через консоль PostgreSQL можно выполнять различные SQL-запросы. Чтобы выйти из консоли, нужно использовать следующую команду:

\q

Конфигурационный файл PostgreSQL

Конфигурационный файл PostgreSQL – это важный файл, в котором вы можете настроить некоторые параметры, такие как максимальное количество подключений, Удаленный доступ, ограниченный доступ, объем оперативной памяти для службы PostgreSQL, на каком порту слушать службу и т. д. Файл конфигурации PostgreSQL находится по адресу:

/var/lib/pgsql/data/postgresql.conf

Следующие строки кода являются примерами из файла postgresql.conf:

- Connection Settings -
#listen_addresses = 'localhost'         # what IP address(es) to listen on;
#port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)
- Memory -
shared_buffers = 128MB                  # min 128kB
- Where to Log 
logging_collector = on
log_filename = 'postgresql-%a.log'
log_rotation_age = 1d

Вот и все. Вы успешно установили систему баз данных PostgreSQL на AlmaLinux 10 и научились некоторым основным командам.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)