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

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

Предпосылки

  • Сервер с МСВСфера 9.6 в качестве ОС.
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo.

Конвенции

1
2
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя.

Обновите систему

Свежая установка МСВСфера 9.6 требует обновления пакетов до последних доступных версий.

1
$ sudo dnf update -y && sudo dnf upgrade -y

Установка PostgreSQL

PostgreSQL доступен в списке пакетов по умолчанию для МСВСфера 9.6, поэтому его можно легко установить с помощью терминала. Следуйте приведенным ниже шагам для установки PostgreSQL, добавьте официальный репозиторий и убедитесь, что база данных начинается автоматически при загрузке сервера. После завершения этих шагов ваш сервер будет готов использовать PostgreSQL для хранения и управления данными.

Установить пакет сервера PostgreSQL.

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

Создание кластера баз данных PostgreSQL.

Для создания кластера баз данных запустите скрипт с помощью sudo и опции --initdb:

1
$ sudo postgresql-setup --initdb

Начните службу PostgreSQL.

1
$ sudo systemctl start postgresql

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

1
$ sudo systemctl enable postgresql

Посмотрите на статус сервиса PostgreSQL, чтобы подтвердить, что он находится в активном состоянии.

1
$ sudo systemctl status postgresql

Защищать PostgreSQL

PostgreSQL использует учетную запись по умолчанию postgres superuser для решения административных задач, таких как управление базами данных и пользователями. На МСВСфера 9.6 он по умолчанию для одноранговой аутентификации, что позволяет получать доступ только к пользователям локальной системы, не требуя пароля. Следуйте приведенным ниже шагам, чтобы улучшить безопасность, разрешить более широкий контроль доступа, включить аутентификацию паролей и ограничить доступ только к авторизованным пользователям.

Проверьте установленную версию PostgreSQL.

1
$ postgres --version

Ваш вывод должен быть похож на следующий:

1
postgres (PostgreSQL) 13.20

Войдите на сервер PostgreSQL в качестве пользователя postgres.

1
$ sudo -u postgres psql

Установите новый надежный пароль для пользователя postgres.

1
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'strong_password';

Заменить strong_password сильным паролем, включая случайные символы.

Создайте новый пользователь под названием park_admin и установите надежный пароль для безопасной аутентификации.

1
postgres=# CREATE USER park_admin ENCRYPTED PASSWORD 'strong_password';

Заменить strong_password сильным паролем, включая случайные символы.

Выйдите из консоли PostgreSQL.

1
postgres=# EXIT;

Включить аутентификацию паролей путем изменения файла pg_hba.conf.

1
$ sudo sed -i '/^local/s/peer/scram-sha-256/' /var/lib/pgsql/data/pg_hba.conf

Перезапустите сервис PostgreSQL, чтобы применить изменения, внесенные в конфигурацию.

1
$ sudo systemctl restart postgresql

Просмотр статуса сервиса для подтверждения сервиса PostgreSQL находится в активном состоянии.

1
$ sudo systemctl status postgresql

PostgreSQL конфигурация

Файл конфигурации PostgreSQL является жизненно важным файлом, в котором можно настроить некоторые значения, такие как максимальное количество подключений, удаленный доступ, ограниченный доступ, сколько RAM использовать для обслуживания PostgreSQL, на каком порту слушать сервис и т.д. Расположение файла конфигурации PostgreSQL:

1
$ sudo nano /var/lib/pgsql/data/postgresql.conf

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# - 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

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

Создайте новый образец базы данных PostgreSQL amusement_park и дайте право собственности пользователю park_admin.

1
$ sudo -u postgres createdb amusement_park -O park_admin

При постановке введите пароль пользователя postgres, который вы создали ранее.

Войдите в базу данных PostgreSQL в качестве пользователя park_admin.

1
$ sudo -u postgres psql -U park_admin -d amusement_park

Введите пароль пользователя park_admin и нажмите Enter, чтобы получить доступ к базе данных.

Создайте новую таблицу visitors в базе данных amusement_park.

1
2
3
4
5
6
amusement_park=> CREATE TABLE visitors (
           visitor_id SERIAL PRIMARY KEY,
           first_name VARCHAR(50),
           last_name VARCHAR(50),
           entry_date DATE
      );

Вышеупомянутое заявление SQL создает новую таблицу в базе данных amusement_park со следующими колонками:

  • visitor_id - это PRIMARY KEY, который уникально идентифицирует каждого посетителя.
  • SERIAL генерирует новый visitor_id для каждой новой записи.
  • first_name и last_name сохранить имя посетителя.
  • entry_date сохраняет дату входа посетителя в amusement_park.

Вставить данные выборки в таблицу visitors.

1
2
3
4
5
6
amusement_park=> INSERT INTO visitors
       ( first_name, last_name, entry_date)
       VALUES
       ( 'Alice', 'Wong', '2024-11-15'),
       ( 'Brian', 'Taylor', '2024-02-28'),
       ( 'Clara', 'Nguyen', '2024-04-10');

Запросите visitors, чтобы просмотреть все доступные записи.

1
amusement_park=> SELECT * FROM visitors;

Ваш вывод должен быть похож на следующий:

1
2
3
4
5
6
 visitor_id | first_name | last_name | entry_date 
------------+------------+-----------+------------
          1 | Alice      | Wong      | 2024-11-15
          2 | Brian      | Taylor    | 2024-02-28
          3 | Clara      | Nguyen    | 2024-04-10
(3 rows)

Выйдите из консоли PostgreSQL.

1
amusement_park=> EXIT;

Завершение

Вы установили PostgreSQL на сервере МСВСфера 9.6 и использовали утилиту psql для создания баз данных и управления записями. Теперь вы можете интегрировать PostgreSQL с вашими приложениями для безопасного управления данными. Для дополнительной информации и вариантов конфигурации обратитесь к официальной документации PostgreSQL.

Если вам понравился этот пост об установке PostgreSQL на сервере МСВСфера 9.6, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.