Поиск по сайту:

Как установить и использовать PostgreSQL 13 в Rocky Linux


Это руководство существует для этих версий ОС

  • Rocky Linux 9
  • Rocky Linux 8.4

На этой странице

  1. Предпосылки
  2. Добавление репозитория PostgreSQL
  3. Установка PostgreSQL 13 в Rocky Linux
  4. Инициализация базы данных PostgreSQL
  5. Защита развертывания PostgreSQL
  6. Изменить метод аутентификации
  7. Создание нового пользователя и базы данных для вашего приложения
  8. Создать таблицу и вставить данные
  9. Заключение

PostgreSQL — это бесплатная система управления базами данных с открытым исходным кодом, ориентированная на расширяемость и соответствие SQL. PostgreSQL — это передовая СУБД корпоративного класса (система управления реляционными базами данных), которая поддерживает запросы как SQL (реляционные), так и JSON (нереляционные).

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

PostgreSQL используется в качестве основной базы данных для веб-приложений, мобильных приложений и аналитических приложений. Некоторые известные пользователи PostgreSQL по всему миру: Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW и т. д.

В этом руководстве вы узнаете, как установить базу данных PostgreSQL в Rocky Linux, обеспечить безопасность развертывания базы данных PostgreSQL и основы использования запросов PostgreSQL для управления пользователями и базами данных.

Предпосылки

  • Система Rocky Linux.
  • Пользователь с правами root или sudo. Этот пользователь будет использоваться для установки новых пакетов и внесения общесистемных изменений.

Добавление репозитория PostgreSQL

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

1. Добавьте официальный репозиторий PostgreSQL для системы Rocky Linux, выполнив следующую команду.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. Затем выполните приведенную ниже команду, чтобы убедиться, что репозиторий PostgreSQL доступен в вашей системе.

sudo dnf -qy repolist

Если репозиторий PostgreSQL доступен в вашей системе, вы увидите несколько версий репозиториев PostgreSQL, как показано на снимке экрана ниже.

Установка PostgreSQL 13 на Rocky Linux

Чтобы иметь возможность установить PostgreSQL из официального репозитория PostgreSQL (не из репозитория Rocky Linux), вам необходимо отключить встроенный модуль репозитория PostgreSQL.

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

sudo dnf module -qy disable postgresql

Команда запустит команду DNF в тихом режиме и примет все ключи gpg (опция -qy) для репозиториев PostgreSQL.

2. После этого установите последнюю версию PostgreSQL 13.4 из репозитория PostgreSQL с помощью приведенной ниже команды dnf.

sudo dnf install postgresql13-server

Введите y и нажмите Enter, чтобы установить PostgreSQL 13.x.

Затем дождитесь установки PostgreSQL.

Инициализация базы данных PostgreSQL

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

1. Выполните следующую команду, чтобы инициализировать конфигурацию базы данных PostgreSQL.

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

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

sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

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

3. Теперь выполните приведенную ниже команду, чтобы проверить службу PostgreSQL.

sudo systemctl status postgresql-13

Если ваша служба PostgreSQL запущена, вы увидите зеленый вывод, например «активный (работает)», как показано ниже. В противном случае вы увидите красный вывод, такой как «не удалось», после журналов сообщений об ошибках.

Защита развертывания PostgreSQL

Во время установки PostgreSQL создаст нового системного пользователя и имя пользователя базы данных как «postgres». И на этом этапе вы будете устанавливать новый пароль для пользователя «postgres», как для системного пользователя, так и для пользователя базы данных.

1. Измените пароль системного пользователя по умолчанию \postgres\ с помощью следующей команды.

passwd postgres

Теперь введите новый пароль системного пользователя \postgres\.

2. Затем, чтобы изменить пароль для пользователя базы данных \postgres\, необходимо войти в оболочку PostgreSQL.

Сначала войдите в систему как системный пользователь \postgres\, используя следующую команду.

su - postgres

Теперь войдите в оболочку PostgreSQL, используя приведенную ниже команду psql.

psql

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

ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';

Теперь введите exit и нажмите \Ctrl+d\, чтобы выйти из пользовательской оболочки postgres.

Изменить метод аутентификации

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

На этом этапе вы узнаете, как изменить метод одноранговой аутентификации по умолчанию на аутентификацию по паролю с использованием scram-sha-256.

1. Сначала войдите в оболочку PostgreSQL, используя следующую команду.

sudo -u postgres psql

Теперь выполните следующий запрос, чтобы проверить расположение конфигурации PostgreSQL pg_hba.conf.

SHOW hba_file;
SHOW password_encryption;

Вы увидите вывод, как показано ниже.

Вы заметите, что конфигурация PostgreSQL \pg_hba.conf\ расположена в каталоге /var/lib/pgsql/13/data, а шифрование пароля по умолчанию для PostgreSQL в операционной системе на основе RHEL - scram-sha-256.

Теперь введите \q, чтобы выйти и закрыть оболочку PostgreSQL.

2. Далее измените рабочий каталог на /var/lib/pgsql/13/data и отредактируйте конфигурацию pg_hba.conf с помощью редактора nano.

cd /var/lib/pgsql/13/data/
nano pg_hba.conf

В нижней части строки измените локальный метод аутентификации на scram-sha-256, как показано ниже.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Теперь нажмите Ctrl+x, введите y и нажмите \Enter\, чтобы сохранить и выйти.

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

3. Затем примените новую конфигурацию, перезапустив службу PostgreSQL с помощью следующей команды.

sudo systemctl restart postgresql-13

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

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

su - postgres
psql

Теперь вам будет предложено ввести пароль для пользователя по умолчанию postgres.

Введите пароль для пользователя базы данных postgres и нажмите Enter. Если ваш пароль правильный, вы увидите оболочку PostgreSQL следующим образом. В противном случае вы увидите ФАТАЛЬНУЮ ошибку, потому что пароль неверный.

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

# Log in as default "postgres" user
sudo -u postgres psql

# Log in as another user
sudo -u postgres psql -U username

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

На этом этапе вы узнаете, как создать нового пользователя и базу данных на PostgreSQL.

1. Войдите в оболочку PostgreSQL, выполнив приведенную ниже команду.

sudo -u postgres psql

Теперь введите пароль для пользователя PostgreSQL postgres.

2. Запустите приведенный ниже запрос PostgreSQL, чтобы создать нового пользователя johndoe с паролем johndoestrongpassword и предоставить пользователю права на создание новой базы данных и роли.

CREATE USER johndoe WITH 
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';

После этого подтвердите нового пользователя, используя следующий запрос.

\du

Теперь вы увидите нового пользователя johndoe со списком ролей Создать роль и Создать БД, как показано ниже.

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

CREATE DATABASE johndoe OWNER johndoe;

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

\l

И вы увидите новую базу данных johndoe с владельцем johndoe, как показано на скриншоте ниже.

Создать таблицу и вставить данные

После создания новой базы данных и пользователя вы научитесь создавать таблицы, вводить данные и отображать данные из базы данных.

1. Теперь войдите в оболочку PostgreSQL как пользователь johndoe, используя следующую команду.

su - postgres
psql -U johndoe

Или вы можете использовать однострочную команду, как показано ниже.

sudo -u postgres psql -U johndoe

Теперь введите пароль пользователя PostgreSQL johndoe и нажмите Enter для входа.

Как видно на снимке экрана, теперь вы вошли в оболочку PostgreSQL в базе данных johndoe=>.

2. Теперь выполните следующий запрос, чтобы создать новую таблицу пользователей с некоторыми идентификаторами столбцов, именем, возрастом, адресом и зарплатой.

CREATE TABLE users (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

Чтобы отобразить доступные таблицы в текущей базе данных, используйте запрос \d, как описано ниже.

\d

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

\d users

Ниже приведен аналогичный результат, который вы получите.

3. Затем добавьте новые данные в таблицу, используя запрос на вставку, как показано ниже.

INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);

4. После этого вы можете отобразить все доступные данные, используя запрос выбора, как показано ниже.

SELECT * FROM users;

Опция * выводит все столбцы внутри таблицы.

Чтобы указать столбец, вы можете использовать запрос выбора, как показано ниже.

SELECT name,age,salary FROM users;

Вы увидите аналогичный вывод, как показано ниже.

Заключение

Поздравляем! Теперь вы узнали, как установить PostgreSQL в Rocky Linux. Кроме того, вы узнали, как развернуть PostgreSQL безопасным (минимальным) образом, и научились базовому использованию запросов PostgreSQL для управления пользователями, базами данных и таблицами.