Як встановити PostgreSQL 13 на Ubuntu 24.04|22.04|20.04

Як встановити PostgreSQL 13 на Ubuntu 24.04|22.04|20.04

 

PostgreSQL – дуже популярна об’єктно-реляційна система управління базами даних (СУБД) з відкритим вихідним кодом, створена для гарантії надійності, ефективності та цілісності даних. Робота над розробкою триває вже понад 30 років, і проект заслужив міцну репутацію завдяки надійності, надійності функцій і продуктивності. У цьому посібнику ми пояснимо, як ви можете встановити та налаштувати сервер баз даних PostgreSQL 13 на сервері Linux Ubuntu 24.04|22.04|20.04.

PostgreSQL використовується тисячами компаній для забезпечення платіжних транзакцій, величезного трафіку веб-сайтів, платформ електронної комерції тощо. Він також дозволяє додавати користувацькі функції, розроблені з використанням мов програмування, таких як Java, Python, C/C++ та багатьох інших.

На момент оновлення цієї статті останній випуск PostgreSQL має вік 13, який призначений для використання для виконання робочих навантажень у виробничих середовищах. Ви можете знайти інформацію про всі функції та зміни, знайдені в PostgreSQL 13, у примітках до випуску.

Крок 1: Оновіть систему Ubuntu

Ми завжди працюємо над останньою версією ОС, щоб переконатися, що немає старих проблем із залежностями. Увійдіть на свій сервер Ubuntu та виконайте наступні команди, щоб оновити всі встановлені пакети.

sudo apt update && sudo apt -y full-upgrade
[ -f /var/run/reboot-required ] && sudo reboot -f

Після того, як система була оновлена, я рекомендую вам виконати перезавантаження, щоб запустити нове ядро, якщо воно було оновлено.

sudo reboot

Крок 2: Додайте репозиторій PostgreSQL 13

Встановіть необхідні пакети залежностей

sudo apt update
sudo apt install curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates

Тепер, коли ми оновили та перезавантажили нашу систему, давайте додамо репозиторій APT, необхідний для отримання пакетів з репозиторію PostgreSQL.

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

Після імпорту ключа GPG додайте вміст репозиторію до вашої системи Ubuntu 24.04|22.04|20.04:

echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

Доданий репозиторій містить багато різних пакетів, включаючи сторонні додатки. До них відносяться:

  • postgresql-client
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pgadmin packages

Крок 3: Встановіть PostgreSQL 13

Додавши репозиторій, ми можемо встановити пакети PostgreSQL 13 на наш сервер Ubuntu 24.04|22.04|20.04 Linux. Але спочатку оновіть індекс пакетів, щоб версія була доступна на рівні ОС.

sudo apt update

Виконайте наведені нижче команди, щоб встановити PostgreSQL 13 на систему Ubuntu 24.04|22.04|20.04 Linux.

sudo apt install postgresql-13 postgresql-client-13

Служба PostgreSQL запускається і налаштовується на те, щоб вона з’являлася після кожного перезавантаження системи.

$ systemctl status postgresql@13-main.service
 postgresql@13-main.service - PostgreSQL Cluster 13-main
     Loaded: loaded (/lib/systemd/system/postgresql@13-main.service; enabled-runtime; vendor preset: enabled)
     Active: active (running) since Wed 2023-05-18 15:50:22 EAT; 1min 55s ago
    Process: 4294 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 13-main start (code=exited, status=0/SUCCESS)
   Main PID: 4299 (postgres)
      Tasks: 7 (limit: 9460)
     Memory: 18.2M
        CPU: 150ms
     CGroup: /system.slice/system-postgresql.slice/postgresql@13-main.service
             ├─4299 /usr/lib/postgresql/13/bin/postgres -D /var/lib/postgresql/13/main -c config_file=/etc/postgresql/13/main/postgresql.conf
             ├─4301 "postgres: 13/main: checkpointer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ├─4302 "postgres: 13/main: background writer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ├─4303 "postgres: 13/main: walwriter " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ├─4304 "postgres: 13/main: autovacuum launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
             ├─4305 "postgres: 13/main: stats collector " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             └─4306 "postgres: 13/main: logical replication launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

Mei 18 15:50:19 ubuntu22 systemd[1]: Starting PostgreSQL Cluster 13-main...
Mei 18 15:50:22 ubuntu22 systemd[1]: Started PostgreSQL Cluster 13-main.

Крок 4: Перевірте з’єднання PostgreSQL

Під час інсталяції автоматично створюється користувач postgres. Цей користувач має повний доступ суперадміністратора до всього вашого екземпляра PostgreSQL. Перед тим, як ви перейдете на цей обліковий запис, ваш зареєстрований користувач системи повинен мати привілеї sudo.

sudo su - postgres

Давайте скинемо цей пароль користувача до надійного пароля, який ми можемо запам’ятати.

psql -c "alter user postgres with password 'StrongAdminP@ssw0rd'"

Запустіть запит PostgreSQL за допомогою команди:

$ psql

Отримайте детальну інформацію про підключення, як показано нижче.

$ psql
psql (13.7 (Ubuntu 13.7-1.pgdg22.04+1))
Type "help" for help.

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

Давайте створимо тестову базу даних і користувача, щоб подивитися, чи вона працює.

postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD 'MyStr0ngP@SS';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser;
GRANT

Список створених баз даних:

postgres=# \l
                               List of databases
   Name    |  Owner   | Encoding | Collate |  Ctype  |    Access privileges    
-----------+----------+----------+---------+---------+-------------------------
 mytestdb  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres           +
           |          |          |         |         | postgres=CTc/postgres  +
           |          |          |         |         | mytestuser=CTc/postgres
 postgres  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | 
 template0 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres            +
           |          |          |         |         | postgres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres            +
           |          |          |         |         | postgres=CTc/postgres
(4 rows)

Підключення до бази даних:

postgres-# \c mytestdb
You are now connected to database "mytestdb" as user "postgres".

Інші встановлені утиліти PostgreSQL, такі як createuser та createdb, можуть бути використані для створення бази даних та користувачів.

postgres@ubuntu:~$ createuser myuser --password
Password:
postgres@ubuntu:~$ createdb mydb -O myuser
postgres@ubuntu:~$ psql -l 

Ми можемо створити та підключитися до бази даних на сервері PostgreSQL.

Крок 5: Налаштуйте віддалене підключення (необов’язково)

Встановлення PostgreSQL 13 на Ubuntu приймає підключення лише з localhost. В ідеальних виробничих середовищах у вас буде центральний сервер баз даних і віддалені клієнти, що підключаються до нього, але, звичайно, в межах приватної мережі (LAN).

Щоб увімкнути віддалені підключення, відредагуйте файл конфігурації PostgreSQL:

sudo nano /etc/postgresql/13/main/postgresql.conf 

Розкоментуйте рядок 59 і змініть адресу Listen address, щоб приймати з’єднання у ваших мережах.

# Listen on all interfaces
listen_addresses = '*'

# Listen on specified private IP address
listen_addresses = '192.168.10.11'

Також налаштуйте PostgreSQL на прийом віддалених з’єднань від дозволених хостів.

$ sudo nano /etc/postgresql/13/main/pg_hba.conf

# Accept from anywhere
host all all 0.0.0.0/0 md5

# Accept from trusted subnet
host all all 10.10.10.0/24 md5

Після зміни перезапустіть службу postgresql.

sudo systemctl restart postgresql

Підтвердьте адреси для прослуховування.

# netstat  -tunelp | grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      111        112837     11143/postgres      
tcp6       0      0 :::5432                 :::*                    LISTEN      111        112838     11143/postgres      
Прокрутка до верху