Як встановити 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